Author: Eric A. Meyer

# Chaco

## A Brief History, Progress Update, and Future Directions

### Peter Wang

#### Enthought, Inc.

# What is Chaco?

Chaco is a plotting application toolkit for Python. You use it to build stand-alone plotting applications, or embed it inside any application that needs to visualize numerical data.

Sample plotting applications:

- batch plotting of data
- interactive data inspector
- realtime data acquisition and plotting
- plot/graph constructor

# More plotting applications

It's not all scientific-y stuff!

- sound waveform editor
- graphic equalizer
- graphical stock ticker
- Google Maps

Any time you want to view numerical information in a structured way, you are doing plotting.

# What makes Chaco special?

- Chaco has an architecture that facilitates viewing interrelated data
- Chaco is designed from the ground up to be interactive (user interaction and data inspection)

That's it??

#

That's enough!

- many, many plotting apps out there
- not many that are real "toolkits" (jfreechart, INT widgets)
- fewer are designed for really interactive use
- even fewer are free
- none (that I'm aware of) in Python

#

Most of the hard math problems are solved or patented: contouring, label placement, fast 2d graphics routines.

What remains is the software challenge. A good toolkit provides modular pieces that play well together. They must map onto the problem domain (plotting) in a coherent way.

# A brief history

- Originally developed a few years ago by Dave Morrill and others
- Remained relatively dormant for a couple of years
- Now undergoing re-architecting and rewrite: Chaco

# Architecture

- Data objects: DataSource, DataRange, Mapper
- Plotting side: Mapper, Renderer, Axis, Grid
- Containers & Frames

# Demos

# The Near and Far Future

- Port renderers from old Chaco
- polar
- command-line plotting (matlab-style interface)
- 3D
- 4D!

# How to get it

http://code.enthought.com/chaco

Mailing lists: scipy-chaco@scipy.org, enthought-dev@enthought.com

Get Enthon! http://code.enthought.com/enthon