Enthought Home home  |  www.enthought.com  |  www.scipy.org  |  installation
Enthought Projects

Introduction to Chaco

Introduction  | FAQ | Architecture | Chaco Wiki | API (ETS 3.0.0) | API (ETS 2.7.1)

Chaco is a toolkit for composing many visualization components into interactive, visually appealing data graphics. It is both a software architecture and a collection of visual components. It also comes bundled with a number of example visualizations that can be quickly adapted for specific application domains.

Since interactivity and the model-view-controller model is central to Chaco's design, we say that it is a plotting application toolkit. (Of course, Chaco can render static plots as well.)

Chaco is architected to support interactive data visualization and integration into other applications. Its components are meant to be connected and hooked up to data that might be updating in realtime, and its rendering and event models are designed to be as responsive as possible.

Chaco primarily depends on three other Enthought packages: Traits, Enable, and Kiva. Enable is a pure-python visual component canvas. It has a "backend" that translates GUI toolkit-specific events and methods into a generic system. Currently only the WX toolkit is supported, but there is an outdated Tk backend, and someday there will hopefully be a Qt backend as well. Enable is part of the Enthought Tool Suite.

Chaco and Enable both use Kiva for rendering. Kiva is a vector drawing API for Python that is similar to Quartz, PDF, and Cairo. Like Enable, it presents a common API across different backends.