add another example using bar charts and multiple axes

git-svn-id: http://graphy.googlecode.com/svn/trunk@60 30582518-8026-11dd-8d1c-71c7e1663bfb
This commit is contained in:
zovirl@zovirl.com 2008-12-23 16:43:04 +00:00
parent 4f81f79a5a
commit 53913683a1
1 changed files with 59 additions and 0 deletions

59
examples/states.py Executable file
View File

@ -0,0 +1,59 @@
#!/usr/bin/python2.4
#
# Copyright 2008 Google Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
from graphy.backends import google_chart_api
from graphy import common
# Area of some states, in square miles
# Data from http://www.enchantedlearning.com/usa/states/area.shtml
area = {'WA': 71303,
'OR': 98386,
'ID': 83574,
'MT': 147046,
'WY': 97818,
'ME': 35387,
'VT': 9615,
'NH': 9351,
'MA': 10555,
'NY': 54475,
'CT': 5544,
'RI': 1545,
'NJ': 8722,
'PA': 46058}
northwest = ('WA', 'OR', 'ID', 'MT', 'WY')
northeast = ('ME', 'VT', 'NH', 'MA', 'NY', 'CT', 'RI', 'NJ', 'PA')
states = northwest + northeast
areas = [area[s] for s in states]
print '<html><body>'
print '<h1>Areas of States in the Northwest and Northeast US</h1>'
print '<h3>(in square miles)</h3>'
chart = google_chart_api.BarChart(areas)
chart.bottom.labels = states
region_axis = common.Axis()
region_axis.min = 0
region_axis.max = 100
region_axis.labels = ['Northwest', 'Northeast']
region_axis.label_positions = [20, 60]
chart.AddAxis(common.AxisPosition.BOTTOM, region_axis)
ylabels = range(0, 150001, 50000)
chart.left.min = min(ylabels)
chart.left.max = max(ylabels)
chart.left.labels = ['%sK' % (x / 1000) for x in ylabels]
chart.left.label_positions = ylabels
print chart.display.Img(500, 220)
print '</body></html>'