
Chaco is a Python plot application toolkit. It is meant to facilitate
writing plotting applications of 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 nice static plots for publication and presentation purposes, its
components are all designed to be work well for interactive data
visualization.
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.
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.