~ubuntu-branches/ubuntu/utopic/python-chaco/utopic

« back to all changes in this revision

Viewing changes to docs/source/user_manual/faq.rst

  • Committer: Package Import Robot
  • Author(s): Andrew Starr-Bochicchio
  • Date: 2014-06-01 17:04:08 UTC
  • mfrom: (7.2.5 sid)
  • Revision ID: package-import@ubuntu.com-20140601170408-m86xvdjd83a4qon0
Tags: 4.4.1-1ubuntu1
* Merge from Debian unstable. Remaining Ubuntu changes:
 - Let the binary-predeb target work on the usr/lib/python* directory
   as we don't have usr/share/pyshared anymore.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
##########################
2
 
Frequently Asked Questions
3
 
##########################
4
 
 
5
 
 
6
 
Where does the name "Chaco" come from?
7
 
======================================
8
 
 
9
 
It is named after `Chaco Canyon <http://www.nps.gov/chcu/>`_, which had
10
 
astronomical markings that served as an observatory for Native Americans. The
11
 
original version of Chaco was built as part of a project for the `Space
12
 
Telescope Science Institute <http://www.stsci.edu/resources/>`_. This is also
13
 
the origin of the name "Kiva" for our vector graphics layer that Chaco uses for
14
 
rendering.
15
 
 
16
 
 
17
 
Why was Chaco named "Chaco2" for a while?
18
 
=========================================
19
 
 
20
 
Starting in January of 2006, we refactored and reimplemented much of the core
21
 
Chaco API. The effort has been named "chaco2", and lives in the
22
 
:mod:`chaco2` namespace. During that time, the original Chaco package
23
 
("Chaco Classic") was in maintenance-only mode, but there was still code that
24
 
needed features from both Chaco Classic and Chaco2.  That code has finally been
25
 
either shelved or refactored, and the latest versions of Chaco (3.0 and up) are
26
 
back to residing in the :mod:`chaco` namespace.  We still have
27
 
compatibility modules in :mod:`chaco2`, but they just proxy for the
28
 
real code in :mod:`chaco`.
29
 
 
30
 
The same applies to the :mod:`enable` and :mod:`enable2`
31
 
packages.
32
 
 
33
 
 
34
 
What are the pros and cons of Chaco vs. matplotlib?
35
 
===================================================
36
 
 
37
 
This question comes up quite a bit.  The bottom line is that the two projects
38
 
initially set out to do different things, and although each project has grown a
39
 
lot of overlapping features, the different original charters are reflected in
40
 
the capabilities and feature sets of the two projects.
41
 
 
42
 
 
43
 
Here is an `excerpt from a thread about this question
44
 
<https://mail.enthought.com/pipermail/enthought-dev/2007-May/005363.html>`_ on
45
 
the enthought-dev mailing list.
46
 
 
47
 
Gael Varoquaux's response::
48
 
 
49
 
    On Fri, May 11, 2007 at 10:03:21PM +0900, Bill Baxter wrote:
50
 
 
51
 
    > Just curious.  What are the pros and cons of chaco vs matplotlib?
52
 
 
53
 
    To me it seem the big pro of chaco is that it is much easier to use in a
54
 
    "programatic way" (I have no clue this means something in English). It is
55
 
    fully traited and rely quite a lot on inversion of control (sorry, I love
56
 
    this concept, so it has become my new buzz-word). You can make very nice
57
 
    object oriented interactive code.
58
 
 
59
 
    Another nice aspect is that it is much faster than MPL.
60
 
 
61
 
    The cons are that it is not as fully featured as MPL, that it does not
62
 
    has an as nice interactively useable functional interface (ie chaco.shell
63
 
    vs pylab) and that it is not as well documented and does not have the
64
 
    same huge community.
65
 
 
66
 
    I would say that the codebase of chaco is nicer, but than if you are not
67
 
    developping interactive application, it is MPL is currently an option
68
 
    that is lickely to get you where you want to go quicker. Not that I
69
 
    wouldn't like to see chaco building up a bit more and becoming **the** reference.
70
 
 
71
 
    Developers, if you want chaco to pick up momentum, give it a pylab-like
72
 
    interface (as close as you can to pylab) !
73
 
 
74
 
    My 2 cents,
75
 
    Gael
76
 
 
77
 
 
78
 
Peter Wang's response (excerpt)::
79
 
 
80
 
        On May 11, 2007, at 8:03 AM, Bill Baxter wrote:
81
 
 
82
 
    > Just curious.  What are the pros and cons of chaco vs matplotlib?
83
 
        
84
 
    You had to go and ask, didn't you? :)  There are many more folks here  
85
 
    who have used MPL more extensively than myself, so I'll defer the  
86
 
    comparisons to them.  (Gael, as always, thanks for your comments and  
87
 
    feedback!)  I can comment, however, on the key goals of Chaco.
88
 
 
89
 
    Chaco is a plotting toolkit targeted towards developers for building  
90
 
    interactive visualizations.  You hook up pieces to build a plot that  
91
 
    is then easy to inspect, interact with, add configuration UIs for  
92
 
    (using Traits UI), etc.  The layout of plot areas, the multiplicity  
93
 
    and types of renderers within those windows, the appearance and  
94
 
    locations of axes, etc. are all completely configurable since these  
95
 
    are all first-class objects participating in a visual canvas.  They  
96
 
    can all receive mouse and keyboard events, and it's easy to subclass  
97
 
    them (or attach tools to them) to achieve new kinds of behavior.   
98
 
    We've tried to make all the plot renderers adhere to a standard  
99
 
    interface, so that tools and interactors can easily inspect data and  
100
 
    map between screen space and data space.  Once these are all hooked  
101
 
    up, you can swap out or update the data independently of the plots.
102
 
 
103
 
    One of the downsides we had a for a while was that this rich set of  
104
 
    objects required the programmer to put several different classes  
105
 
    together just to make a basic plot.  To solve this problem, we've  
106
 
    assembled some higher-level classes that have the most common  
107
 
    behaviors built-in by default, but which can still be easily  
108
 
    customized or extended.  It's clear to me that this is a good general  
109
 
    approach to preserving flexibility while reducing verbosity.
110
 
 
111
 
    At this point, Chaco is definitely capable of handling a large number  
112
 
    of different plotting tasks, and a lot of them don't require too much  
113
 
    typing or hacking skills.  (Folks will probably require more  
114
 
    documentation, however, but I'm working on that. :)  I linked to the  
115
 
    source for all of the screenshots in the gallery to demonstrate that  
116
 
    you can do a lot of things with Chaco in a few dozen lines of code.   
117
 
    (For instance, the audio spectrogram at the bottom of the gallery is  
118
 
    just a little over 100 lines.)
119
 
 
120
 
    Fundamentally, I like the Chaco model of plots as compositions of  
121
 
    interactive components.  This really helps me think about  
122
 
    visualization apps in a modular way, and it "fits my head".  (Of  
123
 
    course, the fact that I wrote much of it might have something to do  
124
 
    with that as well. ;)  The goal is to have data-related operations  
125
 
    clearly happen in one set of objects, the view layout and  
126
 
    configuration happen in another, and the interaction controls fit  
127
 
    neatly into a third.  IMHO a good toolkit should help me design/ 
128
 
    architect my application better, and we definitely aspire to make  
129
 
    Chaco meet that criterion.
130
 
 
131
 
    Finally, one major perk is that since Chaco is built completely on  
132
 
    top of traits and its event-based component model, you can call  
133
 
    edit_traits() on any visual component from within your app (or  
134
 
    ipython) and get a live GUI that lets you tweak all of its various  
135
 
    parameters in realtime.  This applies to the axis, grid, renderers,  
136
 
    etc.  This seems so natural to me that I sometimes forget what an  
137
 
    awesome feature it is. :)  
138
 
 
139
 
 
140