3
Copyright Gerald Kaszuba 2008
5
This program is free software: you can redistribute it and/or modify
6
it under the terms of the GNU General Public License as published by
7
the Free Software Foundation, either version 3 of the License, or
8
(at your option) any later version.
10
This program is distributed in the hope that it will be useful,
11
but WITHOUT ANY WARRANTY; without even the implied warranty of
12
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
GNU General Public License for more details.
15
You should have received a copy of the GNU General Public License
16
along with this program. If not, see <http://www.gnu.org/licenses/>.
23
ROOT = os.path.dirname(os.path.abspath(__file__))
24
sys.path.insert(0, os.path.join(ROOT, '..'))
26
from pygooglechart import Chart
27
from pygooglechart import SimpleLineChart
28
from pygooglechart import XYLineChart
29
from pygooglechart import SparkLineChart
30
from pygooglechart import Axis
36
chart = SimpleLineChart(settings.width, settings.height, y_range=(0, 100))
37
chart.add_data(helper.random_data())
38
chart.download('line-simple-random.png')
41
chart = XYLineChart(settings.width, settings.height,
42
x_range=(0, 100), y_range=(0, 100))
43
chart.add_data(helper.random_data())
44
chart.add_data(helper.random_data())
45
chart.download('line-xy-random.png')
48
chart = XYLineChart(settings.width, settings.height,
49
x_range=(0, 100), y_range=(0, 100))
50
chart.add_data([10, 90, 90, 10, 10])
51
chart.add_data([10, 10, 90, 90, 10])
52
chart.download('line-xy-rect.png')
55
chart = XYLineChart(settings.width, settings.height,
56
x_range=(0, 100), y_range=(0, 100))
64
for angle in range(0, steps + 1):
65
angle = float(angle) / steps * math.pi * 2
66
xlist.append(math.cos(angle) * xradius + xmid)
67
ylist.append(math.sin(angle) * yradius + ymid)
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')
162
if __name__ == '__main__':