37 lines
1.1 KiB
Python
37 lines
1.1 KiB
Python
import pygal
|
|
from pygal.style import Style
|
|
|
|
custom_style = Style(
|
|
background='transparent',
|
|
plot_background='transparent',
|
|
foreground='#53E89B',
|
|
foreground_strong='#53A0E8',
|
|
foreground_subtle='#630C0D',
|
|
opacity='.6',
|
|
opacity_hover='.9',
|
|
transition='400ms ease-in',
|
|
colors=('#E853A0', '#E8537A', '#E95355', '#E87653', '#E89B53'))
|
|
|
|
|
|
def generate_graph(x_labels, data, style=custom_style):
|
|
"""
|
|
Generate SVG line graph using pygal
|
|
example usage: generate_graph([1,2,3], [("RPM", [1,2,3]),("Power", [2,4,6])])
|
|
"""
|
|
graph = pygal.Line(show_y_guides=False,
|
|
show_legend=False, style=style)
|
|
graph.x_labels = x_labels
|
|
|
|
for title, values in data:
|
|
graph.add(title, values)
|
|
graph_data = graph.render_data_uri()
|
|
return graph_data
|
|
|
|
|
|
def generate_sparkline_graph(data, style=custom_style):
|
|
chart = pygal.Line(show_y_guides=False,
|
|
show_legend=False, style=style)
|
|
chart.add('', data)
|
|
|
|
return chart.render_sparkline(disable_xml_declaration=True)
|