python pycha是一个轻量级的画图工具,支持饼图、柱状图及折线图等等。
使用pycha之前,需要安装cairo,Centos 6可以直接使用yum install cairo安装。
或者直接使用easy_install pycha(推荐)。
使用pycha画堆积柱状图:
#-*- coding: utf-8 -*-
import sys
import cairo
import pycha.stackedbar
def stackedBarChart(output, chartFactory):
surface = cairo.ImageSurface(cairo.FORMAT_ARGB32, 800, 400)
dataSet = (
('游戏1', [(0, 8), (1, 10), (2, 5), (3, 6)]),
('游戏2', [(0, 5), (1, 2), (2, 4), (3, 8)]),
('游戏3', [(0, 5), (1, 2), (2, 4), (3, 8)]),
)
options = {
'background': {
'chartColor': '#ffeeff',
'baseColor': '#ffffff',
'lineColor': '#444444',
},
'colorScheme': {
'name': 'fixed',
'args': {
'colors':['#66B3FF','#53FF53','#F9F900']
},
},
'legend': {
'hide': False,
'legendFont':'字体'
},
'yvals':{
'show' : True,
'inside' : True
},
'title':'游戏收入',
'titleColor':'#0000ff',
'titleFont':'字体',
'titleFontSize':36,
'encoding':'utf-8'
}
chart = chartFactory(surface, options)
chart.addDataset(dataSet)
chart.render()
surface.write_to_png(output)
if __name__ == '__main__':
if len(sys.argv) > 1:
output = sys.argv[1]
else:
output = 'stackedbarchart.png'
stackedBarChart('v' + output, pycha.stackedbar.StackedVerticalBarChart)
效果: