/+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: Gustav Hartvigsson
  • Date: 2011-01-03 21:57:12 UTC
  • Revision ID: gustav.hartvigsson@gmail.com-20110103215712-1yeiw9tl7oiwh8w1
forgot the the the images in the examples folder...

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
#!/usr/bin/env python
 
2
"""
 
3
Copyright Gerald Kaszuba 2008
 
4
 
 
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.
 
9
 
 
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.
 
14
 
 
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/>.
 
17
"""
2
18
 
3
19
import os
4
20
import sys
7
23
ROOT = os.path.dirname(os.path.abspath(__file__))
8
24
sys.path.insert(0, os.path.join(ROOT, '..'))
9
25
 
 
26
from pygooglechart import Chart
10
27
from pygooglechart import SimpleLineChart
11
28
from pygooglechart import XYLineChart
12
29
from pygooglechart import SparkLineChart
44
61
    ymid = 50
45
62
    xlist = []
46
63
    ylist = []
47
 
    for angle in xrange(0, steps + 1):
 
64
    for angle in range(0, steps + 1):
48
65
        angle = float(angle) / steps * math.pi * 2
49
66
        xlist.append(math.cos(angle) * xradius + xmid)
50
67
        ylist.append(math.sin(angle) * yradius + ymid)
59
76
 
60
77
def fill():
61
78
 
62
 
    # Set the vertical range to 0 to 50
 
79
    # Set the vertical range from 0 to 50
63
80
    max_y = 50
64
81
    chart = SimpleLineChart(200, 125, y_range=[0, max_y])
65
82
 
85
102
    # Between the 3 data values
86
103
    chart.add_fill_range('224499', 1, 2)
87
104
    chart.add_fill_range('FF0000', 2, 3)
88
 
    
 
105
 
89
106
    # from the last real data to the
90
107
    chart.add_fill_range('80C65A', 3, 4)
91
108
 
95
112
 
96
113
    chart.download('line-fill.png')
97
114
 
 
115
def stripes():
 
116
    
 
117
    # Set the vertical range from 0 to 100
 
118
    max_y = 100
 
119
 
 
120
    # Chart size of 200x125 pixels and specifying the range for the Y axis
 
121
    chart = SimpleLineChart(200, 125, y_range=[0, max_y])
 
122
 
 
123
    # Add the chart data
 
124
    data = [
 
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
 
128
    ]
 
129
    chart.add_data(data)
 
130
    
 
131
    # Set the line colour to blue
 
132
    chart.set_colours(['0000FF'])
 
133
 
 
134
    # Set the vertical stripes
 
135
    chart.fill_linear_stripes(Chart.CHART, 0, 'CCCCCC', 0.2, 'FFFFFF', 0.2)
 
136
 
 
137
    # Set the horizontal dotted lines
 
138
    chart.set_grid(0, 25, 5, 5)
 
139
 
 
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
 
142
    # label.
 
143
    left_axis = range(0, max_y + 1, 25)
 
144
    #left_axis[0] = ''
 
145
    chart.set_axis_labels(Axis.LEFT, left_axis)
 
146
 
 
147
    # X axis labels
 
148
    chart.set_axis_labels(Axis.BOTTOM, \
 
149
        ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun'])
 
150
 
 
151
    chart.download('line-stripes.png')
 
152
 
98
153
def main():
99
154
    simple_random()
100
155
    xy_random()
102
157
    xy_circle()
103
158
    sparklines()
104
159
    fill()
 
160
    stripes()
105
161
 
106
162
if __name__ == '__main__':
107
163
    main()