天天看點

Python:使用pycha快速繪制辦公常用圖(餅圖、垂直直方圖、水準直方圖、散點圖等七種圖形)

一、代碼:

#!/usr/bin/env python  

# -*- coding: utf-8 -*-  

import cairo   

import pycha.pie  

import pycha.bar  

import pycha.scatter  

import pycha.stackedbar  

import pycha.line  

#設定畫布  

def set_charvalue():  

    width,height=600,600   

    surface=cairo.ImageSurface(cairo.FORMAT_ARGB32,width,height)   

    return surface  

#畫餅圖  

def draw_pie(surface, options, dataSet):  

    chart=pycha.pie.PieChart(surface,options)   

    chart.addDataset(dataSet)   

    chart.render()   

    surface.write_to_png('d:\\Pie.png')   

#垂直直方圖  

def draw_vertical_bar(surface, options, dataSet):  

    chart=pycha.bar.VerticalBarChart(surface,options)   

    surface.write_to_png('d:\\vertical_bar.png')     

#垂直水準直方圖      

def draw_horizontal_bar(surface, options, dataSet):  

    chart = pycha.bar.HorizontalBarChart(surface,options)   

    surface.write_to_png('d:\\horizontal_bar.png')     

#線圖      

def draw_line(surface, options, dataSet):  

    chart = pycha.line.LineChart(surface,options)   

    surface.write_to_png('d:\\line.png')        

#點圖      

def draw_scatterplot(surface, options, dataSet):  

    chart = pycha.scatter.ScatterplotChart(surface,options)   

    surface.write_to_png('d:\\scatterplotChart.png')           

#垂直塊圖       

def draw_stackedverticalbarChar(surface, options, dataSet):  

    chart = pycha.stackedbar.StackedVerticalBarChart(surface,options)   

    surface.write_to_png('d:\\stackedVerticalBarChart.png')        

#水準塊圖  

def draw_stackedhorizontalbarChart(surface, options, dataSet):  

    chart = pycha.stackedbar.StackedHorizontalBarChart(surface,options)   

    surface.write_to_png('d:\\stackedhorizontalbarChart.png')      

if __name__ == '__main__':  

    ''''' 

    Function:使用pycha畫各種圖表 

    Input:NONE 

    Output: NONE 

    author: socrates 

    blog:http://blog.csdn.net/dyx1024 

    date:2012-02-28 

    '''  

    #資料來源  

    dataSet=(   

             ('iphone',((0,1),(1,3),(2,2.5))),   

             ('htc',((0,2),(1,4),(2,3))),   

             ('hw',((0,5),(1,1,),(2,0.5))),   

             ('zte',((0,3),(1,2,),(2,1.5))),   

            )   

    #圖像屬性定義  

    options={   

                'legend':{'hide':False},   

                'title':'手機銷售量分布圖(by dyx1024)',  

                'titleColor':'#0000ff',  

                'titleFont':'字型',  

                'background':{'chartColor': '#ffffff'},   

                'axis':{'labelColor':'#ff0000'},  

            }       

    surface = set_charvalue()  

    #根據需要調用不同函數畫不同形狀的圖  

    #draw_pie(surface, options, dataSet)  

    #draw_vertical_bar(surface, options, dataSet)  

    #draw_horizontal_bar(surface, options, dataSet)  

    #draw_scatterplot(surface, options, dataSet)  

    #draw_stackedverticalbarChar(surface, options, dataSet)  

    #draw_stackedhorizontalbarChart(surface, options, dataSet)  

    draw_line(surface, options, dataSet)  

二、測試:

1、函數draw_pie(surface, options, dataSet):

Python:使用pycha快速繪制辦公常用圖(餅圖、垂直直方圖、水準直方圖、散點圖等七種圖形)

2、函數draw_vertical_bar(surface, options, dataSet):

Python:使用pycha快速繪制辦公常用圖(餅圖、垂直直方圖、水準直方圖、散點圖等七種圖形)

3、函數draw_horizontal_bar(surface, options, dataSet):

Python:使用pycha快速繪制辦公常用圖(餅圖、垂直直方圖、水準直方圖、散點圖等七種圖形)

4、函數draw_line(surface, options, dataSet):

Python:使用pycha快速繪制辦公常用圖(餅圖、垂直直方圖、水準直方圖、散點圖等七種圖形)

5、函數draw_scatterplot(surface, options, dataSet):

Python:使用pycha快速繪制辦公常用圖(餅圖、垂直直方圖、水準直方圖、散點圖等七種圖形)

6、函數draw_stackedverticalbarChar(surface, options, dataSet):

Python:使用pycha快速繪制辦公常用圖(餅圖、垂直直方圖、水準直方圖、散點圖等七種圖形)

7、函數draw_stackedhorizontalbarChart(surface, options, dataSet):

Python:使用pycha快速繪制辦公常用圖(餅圖、垂直直方圖、水準直方圖、散點圖等七種圖形)

本文轉自 chengxuyonghu 51CTO部落格,原文連結:http://blog.51cto.com/6226001001/1576046,如需轉載請自行聯系原作者