mirror of https://github.com/Kozea/pygal.git
Python to generate nice looking SVG graph
http://pygal.org/
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
93 lines
2.6 KiB
93 lines
2.6 KiB
12 years ago
|
# -*- coding: utf-8 -*-
|
||
|
# This file is part of pygal
|
||
|
import pygal
|
||
|
from pygal import Bar, Gauge, Pyramid, Funnel, Dot
|
||
|
from pygal.style import styles
|
||
|
|
||
|
|
||
|
def get_test_routes(app):
|
||
|
lnk = lambda v, l=None: {'value': v, 'xlink': 'javascript:alert("Test %s")' % v, 'label': l}
|
||
|
|
||
|
@app.route('/test/unsorted')
|
||
|
def test_unsorted():
|
||
|
bar = Bar(style=styles['neon'])
|
||
|
bar.add('A', {'red': 10, 'green': 12, 'blue': 14})
|
||
|
bar.add('B', {'green': 11, 'blue': 7})
|
||
|
bar.add('C', {'blue': 7})
|
||
|
bar.add('D', {})
|
||
|
bar.add('E', {'blue': 2, 'red': 13})
|
||
|
bar.x_labels = ('red', 'green', 'blue')
|
||
|
return bar.render_response()
|
||
|
|
||
|
@app.route('/test/bar_links')
|
||
|
def test_bar_links():
|
||
|
bar = Bar(style=styles['neon'])
|
||
|
bar.add('1234', [
|
||
|
{'value': 10,
|
||
|
'label': 'Ten',
|
||
|
'xlink': 'http://google.com?q=10'},
|
||
|
{'value': 20,
|
||
|
'label': 'Twenty',
|
||
|
'xlink': 'http://google.com?q=20'},
|
||
|
30,
|
||
|
{'value': 40,
|
||
|
'label': 'Forty',
|
||
|
'xlink': 'http://google.com?q=40'}
|
||
|
])
|
||
|
|
||
|
bar.add('4321', [40, {
|
||
|
'value': 30,
|
||
|
'label': 'Thirty',
|
||
|
'xlink': 'http://google.com?q=30'
|
||
|
}, 20, 10])
|
||
|
bar.x_labels = map(str, range(1, 5))
|
||
|
bar.logarithmic = True
|
||
|
bar.zero = 1
|
||
|
return bar.render_response()
|
||
|
|
||
|
@app.route('/test/gauge')
|
||
|
def test_gauge():
|
||
|
gauge = Gauge()
|
||
|
|
||
|
gauge.range = [-10, 10]
|
||
|
gauge.add('Need l', [2.3, 5.12])
|
||
|
gauge.add('No', [99, -99])
|
||
|
return gauge.render_response()
|
||
|
|
||
|
@app.route('/test/gauge')
|
||
|
def test_pyramid():
|
||
|
pyramid = Pyramid()
|
||
|
|
||
|
pyramid.x_labels = ['0-25', '25-45', '45-65', '65+']
|
||
|
pyramid.add('Man single', [2, 4, 2, 1])
|
||
|
pyramid.add('Woman single', [10, 6, 1, 1])
|
||
|
pyramid.add('Man maried', [10, 3, 4, 2])
|
||
|
pyramid.add('Woman maried', [3, 3, 5, 3])
|
||
|
|
||
|
return pyramid.render_response()
|
||
|
|
||
|
@app.route('/test/funnel')
|
||
|
def test_funnel():
|
||
|
funnel = Funnel()
|
||
|
|
||
|
funnel.add('1', [1, 2, 3])
|
||
|
funnel.add('3', [3, 4, 5])
|
||
|
funnel.add('6', [6, 5, 4])
|
||
|
funnel.add('12', [12, 2, 9])
|
||
|
|
||
|
return funnel.render_response()
|
||
|
|
||
|
@app.route('/test/dot')
|
||
|
def test_dot():
|
||
|
dot = Dot()
|
||
|
dot.x_labels = map(str, range(4))
|
||
|
|
||
|
dot.add('a', [1, lnk(3, 'Foo'), 5, 3])
|
||
|
dot.add('b', [2, 2, 0, 2])
|
||
|
dot.add('c', [5, 1, 5, lnk(3, 'Bar')])
|
||
|
dot.add('d', [5, 5, lnk(0, 'Babar'), 3])
|
||
|
|
||
|
return dot.render_response()
|
||
|
|
||
|
return filter(lambda x: x.startswith('test'), locals())
|