7
23
ROOT = os.path.dirname(os.path.abspath(__file__))
8
24
sys.path.insert(0, os.path.join(ROOT, '..'))
26
from pygooglechart import Chart
10
27
from pygooglechart import SimpleLineChart
11
28
from pygooglechart import XYLineChart
29
from pygooglechart import SparkLineChart
30
from pygooglechart import Axis
16
35
def simple_random():
17
chart = SimpleLineChart(settings.width, settings.height)
36
chart = SimpleLineChart(settings.width, settings.height, y_range=(0, 100))
18
37
chart.add_data(helper.random_data())
19
38
chart.download('line-simple-random.png')
22
chart = XYLineChart(settings.width, settings.height)
41
chart = XYLineChart(settings.width, settings.height,
42
x_range=(0, 100), y_range=(0, 100))
23
43
chart.add_data(helper.random_data())
24
44
chart.add_data(helper.random_data())
25
45
chart.download('line-xy-random.png')
28
chart = XYLineChart(settings.width, settings.height)
48
chart = XYLineChart(settings.width, settings.height,
49
x_range=(0, 100), y_range=(0, 100))
29
50
chart.add_data([10, 90, 90, 10, 10])
30
51
chart.add_data([10, 10, 90, 90, 10])
31
52
chart.download('line-xy-rect.png')
34
chart = XYLineChart(settings.width, settings.height)
55
chart = XYLineChart(settings.width, settings.height,
56
x_range=(0, 100), y_range=(0, 100))
47
69
chart.add_data(ylist)
48
70
chart.download('line-xy-circle.png')
73
chart = SparkLineChart(settings.width, settings.height)
74
chart.add_data(helper.random_data())
75
chart.download('line-sparkline.png')
79
# Set the vertical range from 0 to 50
81
chart = SimpleLineChart(200, 125, y_range=[0, max_y])
83
# First value is the highest Y value. Two of them are needed to be
85
chart.add_data([max_y] * 2)
88
chart.add_data([28, 30, 31, 33, 35, 36, 42, 48, 43, 37, 32, 24, 28])
89
chart.add_data([16, 18, 18, 21, 23, 23, 29, 36, 31, 25, 20, 12, 17])
90
chart.add_data([7, 9, 9, 12, 14, 14, 20, 27, 21, 15, 10, 3, 7])
92
# Last value is the lowest in the Y axis.
93
chart.add_data([0] * 2)
96
chart.set_colours(['000000'] * 5)
99
# from the top to the first real data
100
chart.add_fill_range('76A4FB', 0, 1)
102
# Between the 3 data values
103
chart.add_fill_range('224499', 1, 2)
104
chart.add_fill_range('FF0000', 2, 3)
106
# from the last real data to the
107
chart.add_fill_range('80C65A', 3, 4)
110
chart.set_axis_labels(Axis.LEFT, ['', max_y / 2, max_y])
111
chart.set_axis_labels(Axis.BOTTOM, ['Sep', 'Oct', 'Nov', 'Dec'])
113
chart.download('line-fill.png')
117
# Set the vertical range from 0 to 100
120
# Chart size of 200x125 pixels and specifying the range for the Y axis
121
chart = SimpleLineChart(200, 125, y_range=[0, max_y])
125
32, 34, 34, 32, 34, 34, 32, 32, 32, 34, 34, 32, 29, 29, 34, 34, 34, 37,
126
37, 39, 42, 47, 50, 54, 57, 60, 60, 60, 60, 60, 60, 60, 62, 62, 60, 55,
127
55, 52, 47, 44, 44, 40, 40, 37, 34, 34, 32, 32, 32, 31, 32
131
# Set the line colour to blue
132
chart.set_colours(['0000FF'])
134
# Set the vertical stripes
135
chart.fill_linear_stripes(Chart.CHART, 0, 'CCCCCC', 0.2, 'FFFFFF', 0.2)
137
# Set the horizontal dotted lines
138
chart.set_grid(0, 25, 5, 5)
140
# The Y axis labels contains 0 to 100 skipping every 25, but remove the
141
# first number because it's obvious and gets in the way of the first X
143
left_axis = range(0, max_y + 1, 25)
145
chart.set_axis_labels(Axis.LEFT, left_axis)
148
chart.set_axis_labels(Axis.BOTTOM, \
149
['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun'])
151
chart.download('line-stripes.png')
56
162
if __name__ == '__main__':