/+junk/pygooglechart-py3k

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/%2Bjunk/pygooglechart-py3k

« back to all changes in this revision

Viewing changes to examples/line.py

  • Committer: gak
  • Date: 2009-03-15 07:34:55 UTC
  • Revision ID: git-v1:2ce2bd2a423b1305ad2ad81c72b69c004fecec05
Added some example helpers for MapChart

Show diffs side-by-side

added added

removed removed

Lines of Context:
7
7
ROOT = os.path.dirname(os.path.abspath(__file__))
8
8
sys.path.insert(0, os.path.join(ROOT, '..'))
9
9
 
 
10
from pygooglechart import Chart
10
11
from pygooglechart import SimpleLineChart
11
12
from pygooglechart import XYLineChart
 
13
from pygooglechart import SparkLineChart
 
14
from pygooglechart import Axis
12
15
 
13
16
import settings
14
17
import helper
15
18
 
16
19
def simple_random():
17
 
    chart = SimpleLineChart(settings.width, settings.height)
 
20
    chart = SimpleLineChart(settings.width, settings.height, y_range=(0, 100))
18
21
    chart.add_data(helper.random_data())
19
22
    chart.download('line-simple-random.png')
20
23
 
21
24
def xy_random():
22
 
    chart = XYLineChart(settings.width, settings.height)
 
25
    chart = XYLineChart(settings.width, settings.height,
 
26
                        x_range=(0, 100), y_range=(0, 100))
23
27
    chart.add_data(helper.random_data())
24
28
    chart.add_data(helper.random_data())
25
29
    chart.download('line-xy-random.png')
26
30
 
27
31
def xy_rect():
28
 
    chart = XYLineChart(settings.width, settings.height)
 
32
    chart = XYLineChart(settings.width, settings.height,
 
33
                        x_range=(0, 100), y_range=(0, 100))
29
34
    chart.add_data([10, 90, 90, 10, 10])
30
35
    chart.add_data([10, 10, 90, 90, 10])
31
36
    chart.download('line-xy-rect.png')
32
37
 
33
38
def xy_circle():
34
 
    chart = XYLineChart(settings.width, settings.height)
 
39
    chart = XYLineChart(settings.width, settings.height,
 
40
                        x_range=(0, 100), y_range=(0, 100))
35
41
    steps = 40
36
42
    xradius = 25
37
43
    yradius = 45
47
53
    chart.add_data(ylist)
48
54
    chart.download('line-xy-circle.png')
49
55
 
 
56
def sparklines():
 
57
    chart = SparkLineChart(settings.width, settings.height)
 
58
    chart.add_data(helper.random_data())
 
59
    chart.download('line-sparkline.png')
 
60
 
 
61
def fill():
 
62
 
 
63
    # Set the vertical range from 0 to 50
 
64
    max_y = 50
 
65
    chart = SimpleLineChart(200, 125, y_range=[0, max_y])
 
66
 
 
67
    # First value is the highest Y value. Two of them are needed to be
 
68
    # plottable.
 
69
    chart.add_data([max_y] * 2)
 
70
 
 
71
    # 3 sets of real data
 
72
    chart.add_data([28, 30, 31, 33, 35, 36, 42, 48, 43, 37, 32, 24, 28])
 
73
    chart.add_data([16, 18, 18, 21, 23, 23, 29, 36, 31, 25, 20, 12, 17])
 
74
    chart.add_data([7, 9, 9, 12, 14, 14, 20, 27, 21, 15, 10, 3, 7])
 
75
 
 
76
    # Last value is the lowest in the Y axis.
 
77
    chart.add_data([0] * 2)
 
78
 
 
79
    # Black lines
 
80
    chart.set_colours(['000000'] * 5)
 
81
 
 
82
    # Filled colours
 
83
    # from the top to the first real data
 
84
    chart.add_fill_range('76A4FB', 0, 1)
 
85
 
 
86
    # Between the 3 data values
 
87
    chart.add_fill_range('224499', 1, 2)
 
88
    chart.add_fill_range('FF0000', 2, 3)
 
89
 
 
90
    # from the last real data to the
 
91
    chart.add_fill_range('80C65A', 3, 4)
 
92
 
 
93
    # Some axis data
 
94
    chart.set_axis_labels(Axis.LEFT, ['', max_y / 2, max_y])
 
95
    chart.set_axis_labels(Axis.BOTTOM, ['Sep', 'Oct', 'Nov', 'Dec'])
 
96
 
 
97
    chart.download('line-fill.png')
 
98
 
 
99
def stripes():
 
100
    
 
101
    # Set the vertical range from 0 to 100
 
102
    max_y = 100
 
103
 
 
104
    # Chart size of 200x125 pixels and specifying the range for the Y axis
 
105
    chart = SimpleLineChart(200, 125, y_range=[0, max_y])
 
106
 
 
107
    # Add the chart data
 
108
    data = [
 
109
        32, 34, 34, 32, 34, 34, 32, 32, 32, 34, 34, 32, 29, 29, 34, 34, 34, 37,
 
110
        37, 39, 42, 47, 50, 54, 57, 60, 60, 60, 60, 60, 60, 60, 62, 62, 60, 55,
 
111
        55, 52, 47, 44, 44, 40, 40, 37, 34, 34, 32, 32, 32, 31, 32
 
112
    ]
 
113
    chart.add_data(data)
 
114
    
 
115
    # Set the line colour to blue
 
116
    chart.set_colours(['0000FF'])
 
117
 
 
118
    # Set the vertical stripes
 
119
    chart.fill_linear_stripes(Chart.CHART, 0, 'CCCCCC', 0.2, 'FFFFFF', 0.2)
 
120
 
 
121
    # Set the horizontal dotted lines
 
122
    chart.set_grid(0, 25, 5, 5)
 
123
 
 
124
    # The Y axis labels contains 0 to 100 skipping every 25, but remove the
 
125
    # first number because it's obvious and gets in the way of the first X
 
126
    # label.
 
127
    left_axis = range(0, max_y + 1, 25)
 
128
    left_axis[0] = ''
 
129
    chart.set_axis_labels(Axis.LEFT, left_axis)
 
130
 
 
131
    # X axis labels
 
132
    chart.set_axis_labels(Axis.BOTTOM, \
 
133
        ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun'])
 
134
 
 
135
    chart.download('line-stripes.png')
 
136
 
50
137
def main():
51
138
    simple_random()
52
139
    xy_random()
53
140
    xy_rect()
54
141
    xy_circle()
 
142
    sparklines()
 
143
    fill()
 
144
    stripes()
55
145
 
56
146
if __name__ == '__main__':
57
147
    main()