Chaco is a Python package for building interactive and custom 2-D plots.
Python C Other
Latest commit 649dcb5 Dec 23, 2016 @corranwebster corranwebster committed on GitHub Merge pull request #337 from grlee77/setup_fix
fix variable names for building from source distribution


chaco: interactive 2-dimensional plotting

Build status Test coverage

Chaco is a Python plotting application toolkit that facilitates writing plotting applications at all levels of complexity, from simple scripts with hard-coded data to large plotting programs with complex data interrelationships and a multitude of interactive tools. While Chaco generates attractive static plots for publication and presentation, it also works well for interactive data visualization and exploration.


  • Flexible drawing and layout: Plots consist of graphical components which can be placed inside nestable containers for layout, positioning, and event dispatch. Every component has a configurable rendering loop with distinct layers and backbuffering. Containers can draw cooperatively so that layers span across the containment hierarchy.
  • Modular and extensible architecture: Chaco is object-oriented from the ground up for ease of extension and customization. There are clear interfaces and abstract classes defining extension points for writing your own custom behaviors, from custom tools, plot types, layouts, etc. Most classes are also "subclass-friendly", so that subclasses can override one or two methods and everything else just works.
  • Data model for ease of extension and embedding: Chaco separates the data from any transformations of the data that are needed for displaying it. This separation makes it easier to extend Chaco, or embed it in applications.


You must have the following libraries installed before building or installing Chaco: