Python:使用pycha快速繪製辦公常用圖(餅圖、垂直長條圖、水平長條圖、散佈圖等七種圖形)

來源:互聯網
上載者:User

  今天晚上學習了下使用pycha模組來製作各種辦公用圖的方法,非常簡單,本文使用其繪製了7種圖表。

   此模組和API地址為:http://www.lorenzogil.com/projects/pycha/,需要的朋友可以下載下來玩一下,下面是我晚上學習時寫的一點東東,分享之。

一、代碼:

#!/usr/bin/env python# -*- coding: utf-8 -*-import cairo import pycha.pieimport pycha.barimport pycha.scatterimport pycha.stackedbarimport 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)     chart.addDataset(dataSet)     chart.render()     surface.write_to_png('d:\\vertical_bar.png')    #垂直水平長條圖    def draw_horizontal_bar(surface, options, dataSet):    chart = pycha.bar.HorizontalBarChart(surface,options)     chart.addDataset(dataSet)     chart.render()     surface.write_to_png('d:\\horizontal_bar.png')       #線圖    def draw_line(surface, options, dataSet):    chart = pycha.line.LineChart(surface,options)     chart.addDataset(dataSet)     chart.render()     surface.write_to_png('d:\\line.png')      #點圖    def draw_scatterplot(surface, options, dataSet):    chart = pycha.scatter.ScatterplotChart(surface,options)     chart.addDataset(dataSet)     chart.render()     surface.write_to_png('d:\\scatterplotChart.png')         #垂直塊圖     def draw_stackedverticalbarChar(surface, options, dataSet):    chart = pycha.stackedbar.StackedVerticalBarChart(surface,options)     chart.addDataset(dataSet)     chart.render()     surface.write_to_png('d:\\stackedVerticalBarChart.png')      #水平塊圖def draw_stackedhorizontalbarChart(surface, options, dataSet):    chart = pycha.stackedbar.StackedHorizontalBarChart(surface,options)     chart.addDataset(dataSet)     chart.render()     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):

 

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

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

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

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

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

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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.