#!/usr/bin/env python from pygal import Line, Bar, XY, Pie, StackedBar, Config from math import cos, sin bar = Bar() rng = [-3, -32, -39] bar.add('test1', rng) bar.add('test2', map(abs, rng)) bar.x_labels = map(str, rng) bar.title = "Bar test" with open('out-bar.svg', 'w') as f: f.write(bar.render()) stackedbar = StackedBar() rng = [3, -32, 39, 12] stackedbar.add('test1', rng) rng2 = [24, -8, 18, 12] stackedbar.add('test2', rng2) rng3 = [6, 1, -10, 0] stackedbar.add('test3', rng3) stackedbar.x_labels = map(lambda x: '%s / %s / %s' % x, zip(map(str, rng), map(str, rng2), map(str, rng3))) stackedbar.title = "Stackedbar test" with open('out-stackedbar.svg', 'w') as f: f.write(stackedbar.render()) line = Line(Config(y_scale=.0005)) rng = range(-30, 31, 5) line.add('test1', [cos(x / 10.) for x in rng]) line.add('test2', [sin(x / 10.) for x in rng]) line.add('test3', [cos(x / 10.) - sin(x / 10.) for x in rng]) line.x_labels = map(str, rng) line.title = "Line test" with open('out-line.svg', 'w') as f: f.write(line.render()) xy = XY(Config(x_scale=1)) xy.add('test1', [(1981, 1), (2004, 2), (2003, 10), (2012, 8), (1999, -4)]) xy.add('test2', [(1988, -1), (1986, 12), (2007, 7), (2010, 4), (1999, 2)]) xy.title = "XY test" with open('out-xy.svg', 'w') as f: f.write(xy.render()) pie = Pie() pie.add('test', 121) pie.add('test2', 29) # pie.add('test3', 242) # pie.add('test4', 90) # pie.add('test5', 175) pie.title = "Pie test" with open('out-pie.svg', 'w') as f: f.write(pie.render())