|
|
|
@ -17,12 +17,24 @@
|
|
|
|
|
# |
|
|
|
|
# You should have received a copy of the GNU Lesser General Public License |
|
|
|
|
# along with pygal. If not, see <http://www.gnu.org/licenses/>. |
|
|
|
|
import sys |
|
|
|
|
|
|
|
|
|
from pygal import * |
|
|
|
|
from pygal.style import * |
|
|
|
|
from math import cos, sin |
|
|
|
|
|
|
|
|
|
lnk = lambda v, l=None: {'value': v, 'xlink': 'javascript:alert("Test %s")' % v, 'label': l} |
|
|
|
|
|
|
|
|
|
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]) |
|
|
|
|
|
|
|
|
|
dot.render_to_file('out-dot.svg') |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
bar = Bar(style=styles['neon']) |
|
|
|
|
bar.add('1234', [ |
|
|
|
|
{'value': 10, 'label': 'Ten', 'xlink': 'http://google.com?q=10'}, |
|
|
|
@ -34,11 +46,11 @@ bar.add('1234', [
|
|
|
|
|
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.included_js = [] |
|
|
|
|
bar.external_js = [ |
|
|
|
|
'http://localhost:7575/svg.jquery.js', |
|
|
|
|
'http://localhost:7575/pygal.js', |
|
|
|
|
] |
|
|
|
|
# bar.included_js = [] |
|
|
|
|
# bar.external_js = [ |
|
|
|
|
# 'http://localhost:7575/svg.jquery.js', |
|
|
|
|
# 'http://localhost:7575/pygal.js', |
|
|
|
|
# ] |
|
|
|
|
bar.fill = True |
|
|
|
|
bar.render_to_file('out-bar.svg') |
|
|
|
|
|
|
|
|
@ -53,17 +65,17 @@ hbar.add('test3', rng3)
|
|
|
|
|
hbar.x_labels = map( |
|
|
|
|
lambda x: '%s / %s' % x, zip(map(str, rng), map(str, rng2))) |
|
|
|
|
hbar.title = "Horizontal Bar test" |
|
|
|
|
# hbar.render_to_file('out-horizontalbar.svg') |
|
|
|
|
hbar.render_to_file('out-horizontalbar.svg') |
|
|
|
|
|
|
|
|
|
rng = [30, -32, 39, 12] |
|
|
|
|
rng2 = [24, -8, 18, 12] |
|
|
|
|
rng = [30, -32, 39, None, 12, lnk(21, '?')] |
|
|
|
|
rng2 = [24, -8, lnk(18, '!'), 12] |
|
|
|
|
rng3 = [6, 1, -10, 0] |
|
|
|
|
config = Config() |
|
|
|
|
config.x_label_rotation = 35 |
|
|
|
|
config.x_labels = map(lambda x: '%s / %s / %s' % x, |
|
|
|
|
zip(map(str, rng), |
|
|
|
|
map(str, rng2), |
|
|
|
|
map(str, rng3))) |
|
|
|
|
# config.x_labels = map(lambda x: '%s / %s / %s' % x, |
|
|
|
|
# zip(map(str, rng), |
|
|
|
|
# map(str, rng2), |
|
|
|
|
# map(str, rng3))) |
|
|
|
|
config.title = "Stacked Bar test" |
|
|
|
|
config.style = NeonStyle |
|
|
|
|
|
|
|
|
@ -72,7 +84,7 @@ stackedbar.add('@@@@@@@', rng)
|
|
|
|
|
stackedbar.add('++++++', rng2) |
|
|
|
|
stackedbar.add('--->', rng3) |
|
|
|
|
stackedbar.add('None', [None, 42, 42]) |
|
|
|
|
# stackedbar.render_to_file('out-stackedbar.svg') |
|
|
|
|
stackedbar.render_to_file('out-stackedbar.svg') |
|
|
|
|
|
|
|
|
|
config.title = "Horizontal Stacked Bar test" |
|
|
|
|
hstackedbar = HorizontalStackedBar(config) |
|
|
|
@ -80,8 +92,7 @@ hstackedbar.add('@@@@@@@', rng)
|
|
|
|
|
hstackedbar.add('++++++', rng2) |
|
|
|
|
hstackedbar.add('--->', rng3) |
|
|
|
|
|
|
|
|
|
# hstackedbar.render_to_file('out-horizontalstackedbar1.svg') |
|
|
|
|
# hstackedbar.render_to_file('out-horizontalstackedbar2.svg') |
|
|
|
|
hstackedbar.render_to_file('out-horizontalstackedbar.svg') |
|
|
|
|
|
|
|
|
|
line = Line(Config(style=NeonStyle, |
|
|
|
|
zero=.0001, fill=True, |
|
|
|
@ -112,11 +123,11 @@ line.render_to_file('out-line.svg')
|
|
|
|
|
stackedline = StackedLine(fill=True) |
|
|
|
|
stackedline.add('test1', [1, 3, 2, None, 2, 13, 2, 5, 8]) |
|
|
|
|
stackedline.add('test2', [4, 1, 1, 3, 12, 3]) |
|
|
|
|
stackedline.add('test3', [9, 3, 2, 10, 8, 2]) |
|
|
|
|
stackedline.add('test3', [9, 3, 2, lnk(10, '!'), 8, 2]) |
|
|
|
|
stackedline.x_labels = ['a', 'b', 'c', 'd', 'e', 'f', 'g'] |
|
|
|
|
stackedline.title = "Stackedline test" |
|
|
|
|
stackedline.interpolate = "cubic" |
|
|
|
|
# stackedline.render_to_file('out-stackedline.svg') |
|
|
|
|
# stackedline.interpolate = "cubic" |
|
|
|
|
stackedline.render_to_file('out-stackedline.svg') |
|
|
|
|
|
|
|
|
|
xy = XY(Config(fill=True, style=NeonStyle, interpolate='cubic')) |
|
|
|
|
xy.add('test1', [(1981, 1), (1999, -4), (2001, 2), (2003, 10), (2012, 8)]) |
|
|
|
@ -125,20 +136,20 @@ xy.add('test2', [(None, None), (None, 12), (2007, None), (2002.3, 12)])
|
|
|
|
|
# xy.add('test2', [(1980, 0), (1985, 2), (1995, -2), (2005, 4), (2020, -4)]) |
|
|
|
|
# (2005, 6), (2010, -6), (2015, 3), (2020, -3), (2025, 0)]) |
|
|
|
|
xy.title = "XY test" |
|
|
|
|
# xy.render_to_file('out-xy.svg') |
|
|
|
|
xy.render_to_file('out-xy.svg') |
|
|
|
|
|
|
|
|
|
pie = Pie(Config(style=NeonStyle)) |
|
|
|
|
pie.add('test', [lnk(11, 'LOL'), {'value': 8, 'label': 'Lol2'}, 21]) |
|
|
|
|
pie.add('test', [lnk(11, 'Foo'), {'value': 8, 'label': 'Few'}, 21]) |
|
|
|
|
pie.add('test2', [lnk(29), None, 9]) |
|
|
|
|
pie.add('test3', [24, 10, 32]) |
|
|
|
|
pie.add('test4', [20, lnk(18), 9]) |
|
|
|
|
pie.add('test5', [17, 5, 10]) |
|
|
|
|
pie.add('test6', [None, None, 10]) |
|
|
|
|
pie.included_js = [] |
|
|
|
|
pie.external_js = [ |
|
|
|
|
'http://localhost:7575/svg.jquery.js', |
|
|
|
|
'http://localhost:7575/pygal.js', |
|
|
|
|
] |
|
|
|
|
# pie.included_js = [] |
|
|
|
|
# pie.external_js = [ |
|
|
|
|
# 'http://localhost:7575/svg.jquery.js', |
|
|
|
|
# 'http://localhost:7575/pygal.js', |
|
|
|
|
# ] |
|
|
|
|
# pie.add('test', {'value': 11, 'xlink': 'javascript:alert("lol 11")'}) |
|
|
|
|
# pie.add('test2', 1) |
|
|
|
|
# pie.add('test3', 5) |
|
|
|
@ -152,7 +163,7 @@ config.x_labels = (
|
|
|
|
|
'black', 'red', 'blue', 'yellow', 'orange', 'green', 'white') |
|
|
|
|
config.interpolate = 'nearest' |
|
|
|
|
radar = Radar(config) |
|
|
|
|
radar.add('test', [1, 4, lnk(1), 5, None, 2, 5]) |
|
|
|
|
radar.add('test', [1, 4, lnk(10), 5, None, -2, 5]) |
|
|
|
|
radar.add('test2', [10, 2, 0, 5, 1, 9, 4]) |
|
|
|
|
|
|
|
|
|
radar.title = "Radar test" |
|
|
|
|