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
There is a well defined relationship between the data side of things, and we are working on an even more sophisticated and powerful generic data pipeline, leveraging some of the new features of NumPy.