svg.charts
is a pure-python library for generating charts and graphs in SVG, originally based on the SVG::Graph Ruby package by Sean E. Russel.
svg.charts
supercedes svg_charts
1.1 and 1.2.
svg.charts
is written by Jason R. Coombs. It is licensed under an MIT-style permissive license.
You can install it with easy_install or pip:
easy_install svg.charts
pip install svg.charts
Or, check out the mercurial repository source.
Tests are continuously run by Travis-CI: _
To run the tests, refer to the .travis.yml file for the steps run on the Travis-CI hosts.
svg.charts
depends heavily on lxml and cssutils. Thanks to the contributors of those projects for stable, performant, standards-based packages.
Sean E. Russel for creating the SVG::Graph Ruby package from which this Python port was originally derived.
Leo Lapworth for creating the SVG::TT::Graph package which the Ruby port was based on.
Stephen Morgan for creating the TT template and SVG.
svg.charts
has some examples (taken directly from the reference implementation) in tests/samples.py. These examples show sample usage of the various chart types. They should provide a good starting point for learning the usage of the library.
An example of using svg.charts
in a CherryPy web app can be found in jaraco.site.charts. If the site is working, you can see the rendered output here.
svg.charts
also provides API documentation.
Upgrading from 1.x to 2.0
I suggest removing SVG 1.0 from the python installation. This involves removing the SVG directory (or svg_chart*) from site-packages.
Change import statements to import from the new namespace, so:
from SVG import Bar
Bar.VerticalBar(...)
becomes:
from svg.charts.bar import VerticalBar
VerticalBar(...)
- Documentation! This package desperately needs some high-level, tutorial-style how-tos, and not just links to example code.
- Implement javascript-based animation (See JellyGraph for a Silverlight example of what simple animation can do for a charting library).
This project is hosted at BitBucket. Please use that site for reporting bugs and requesting help. Patches are also welcome.