Skip to main content

Python SVG Charting Library

Project description

Status and License

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 svg.charts, or from the mercurial repository source with easy_install svg.charts==dev.

Acknowledgements

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.

Getting Started

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.

Upgrade Notes

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.

from SVG import Bar Bar.VerticalBar(…) becomes from svg.charts.bar import VerticalBar VerticalBar(…)

More To-Dos

  • 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).

Reporting Bugs and Getting Help

This project is hosted at sourceforge. Please use that site for reporting bugs and requesting help. Patches are also welcome.

Changes

2.0.8

  • Updated to latest cssutils with Python 3 support. Thanks Christof!

  • Fixed a few remaining issues with Python 3 compatibility.

2.0.7

  • Fixed bug in rendering of Pie Chart styles.

  • Improved testing framework. Now samples are at least generated as part of the test suite.

  • Fixed bug in javascript when label ids had spaces. See #3139197.

  • Fixed build issue where package data wasn’t included due to 2to3 technique. Now using distribute technique and installation on Python 3 requires distribute.

2.0.6

  • Fixed bug where x axis labels would not be rendered properly if the largest value was the same as the largest visible x value on the chart.

2.0.5

  • Altered the way CSS files are loaded, so they can be more easily customized by subclasses (and less dependent on the class names).

2.0.4

  • A small attempt to improve the documentation - added links to examples that already exist.

2.0.3

  • Fix IndexError in svg.charts.plot.Plot.field_size when there are only two values returned by float_range (in the case there are only two different ‘y’ values in the data) and scale_y_integers == True. Credit to Jean Schurger for the patch.

  • Fixed problem in setup.py installing on Unix OS (case sensitivity of readme.txt). Credit to Luke Miller and Jean Schurger for supplying a patch for this issue.

2.0.2

  • Updated cssutils dependency to 0.9.6 (currently in beta) to require the CSS profiles support.

  • Completed an SVG CSS profile according to the SVG 1.1 spec.

2.0.1

  • Added preliminary SVG CSS profile, suitable for stock CSS properties.

2.0

  • First major divergence from the Ruby reference implementation

  • Now implemented as a namespace package (svg.charts instead of svg_charts)

  • Changed XML processor to lxml

  • Enabled extensible css support using cssutils, greatly reducing static CSS

  • Renamed modules and methods to be more consistent with PEP-8 naming convention

1.2

  • Bug fixes

1.1

  • First public release

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

svg.charts-2.0.8.zip (51.8 kB view details)

Uploaded Source

File details

Details for the file svg.charts-2.0.8.zip.

File metadata

  • Download URL: svg.charts-2.0.8.zip
  • Upload date:
  • Size: 51.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for svg.charts-2.0.8.zip
Algorithm Hash digest
SHA256 c3f4a2e078886ee0fd5342cb0a02779eb9bee00ba8e16e8791e9f90b76611b9d
MD5 761374e7f704970e6dbaaa98a7a619c3
BLAKE2b-256 7c73c11f9e47814eb5fbf09e2cebe0a1277f31eeaee71bc299f2f7b8b03a1d3b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page