/+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: 2008-08-25 07:17:40 UTC
  • Revision ID: git-v1:a6244b319be7152ab8588abdb479c2fa0e5c3cd6
 - Added filled line graph to examples

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
 
"""
18
2
 
19
3
import os
20
4
import sys
23
7
ROOT = os.path.dirname(os.path.abspath(__file__))
24
8
sys.path.insert(0, os.path.join(ROOT, '..'))
25
9
 
26
 
from pygooglechart import Chart
27
10
from pygooglechart import SimpleLineChart
28
11
from pygooglechart import XYLineChart
29
12
from pygooglechart import SparkLineChart
61
44
    ymid = 50
62
45
    xlist = []
63
46
    ylist = []
64
 
    for angle in range(0, steps + 1):
 
47
    for angle in xrange(0, steps + 1):
65
48
        angle = float(angle) / steps * math.pi * 2
66
49
        xlist.append(math.cos(angle) * xradius + xmid)
67
50
        ylist.append(math.sin(angle) * yradius + ymid)
76
59
 
77
60
def fill():
78
61
 
79
 
    # Set the vertical range from 0 to 50
 
62
    # Set the vertical range to 0 to 50
80
63
    max_y = 50
81
64
    chart = SimpleLineChart(200, 125, y_range=[0, max_y])
82
65
 
102
85
    # Between the 3 data values
103
86
    chart.add_fill_range('224499', 1, 2)
104
87
    chart.add_fill_range('FF0000', 2, 3)
105
 
 
 
88
    
106
89
    # from the last real data to the
107
90
    chart.add_fill_range('80C65A', 3, 4)
108
91
 
112
95
 
113
96
    chart.download('line-fill.png')
114
97
 
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
 
 
153
98
def main():
154
99
    simple_random()
155
100
    xy_random()
157
102
    xy_circle()
158
103
    sparklines()
159
104
    fill()
160
 
    stripes()
161
105
 
162
106
if __name__ == '__main__':
163
107
    main()