博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python:使用pycha快速绘制办公常用图(饼图、垂直直方图、水平直方图、散点图等七种图形)...
阅读量:5904 次
发布时间:2019-06-19

本文共 5546 字,大约阅读时间需要 18 分钟。

一、代码:


[python] 

  1. #!/usr/bin/env python  

  2. # -*- coding: utf-8 -*-  

  3.   

  4. import cairo   

  5. import pycha.pie  

  6. import pycha.bar  

  7. import pycha.scatter  

  8. import pycha.stackedbar  

  9. import pycha.line  

  10.   

  11. #设置画布  

  12. def set_charvalue():  

  13.     width,height=600,600   

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

  15.     return surface  

  16.       

  17. #画饼图  

  18. def draw_pie(surface, options, dataSet):  

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

  20.     chart.addDataset(dataSet)   

  21.     chart.render()   

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

  23.   

  24. #垂直直方图  

  25. def draw_vertical_bar(surface, options, dataSet):  

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

  27.     chart.addDataset(dataSet)   

  28.     chart.render()   

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

  30.    

  31. #垂直水平直方图      

  32. def draw_horizontal_bar(surface, options, dataSet):  

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

  34.     chart.addDataset(dataSet)   

  35.     chart.render()   

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

  37.       

  38. #线图      

  39. def draw_line(surface, options, dataSet):  

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

  41.     chart.addDataset(dataSet)   

  42.     chart.render()   

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

  44.   

  45. #点图      

  46. def draw_scatterplot(surface, options, dataSet):  

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

  48.     chart.addDataset(dataSet)   

  49.     chart.render()   

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

  51.   

  52. #垂直块图       

  53. def draw_stackedverticalbarChar(surface, options, dataSet):  

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

  55.     chart.addDataset(dataSet)   

  56.     chart.render()   

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

  58.   

  59. #水平块图  

  60. def draw_stackedhorizontalbarChart(surface, options, dataSet):  

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

  62.     chart.addDataset(dataSet)   

  63.     chart.render()   

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

  65.       

  66. if __name__ == '__main__':  

  67.     ''''' 

  68.     Function:使用pycha画各种图表 

  69.     Input:NONE 

  70.     Output: NONE 

  71.     author: socrates 

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

  73.     date:2012-02-28 

  74.     '''  

  75.     #数据来源  

  76.     dataSet=(   

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

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

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

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

  81.             )   

  82.       

  83.     #图像属性定义  

  84.     options={   

  85.                 'legend':{

    'hide':False},   

  86.                 'title':'手机销售量分布图(by dyx1024)',  

  87.                 'titleColor':'#0000ff',  

  88.                 'titleFont':'字体',  

  89.                 'background':{

    'chartColor''#ffffff'},   

  90.                 'axis':{

    'labelColor':'#ff0000'},  

  91.             }       

  92.       

  93.       

  94.     surface = set_charvalue()  

  95.       

  96.     #根据需要调用不同函数画不同形状的图  

  97.     #draw_pie(surface, options, dataSet)  

  98.     #draw_vertical_bar(surface, options, dataSet)  

  99.     #draw_horizontal_bar(surface, options, dataSet)  

  100.     #draw_scatterplot(surface, options, dataSet)  

  101.     #draw_stackedverticalbarChar(surface, options, dataSet)  

  102.     #draw_stackedhorizontalbarChart(surface, options, dataSet)  

  103.     draw_line(surface, options, dataSet)  

  104.       

  105.           

[python] 

  1. #!/usr/bin/env python  

  2. # -*- coding: utf-8 -*-  

  3.   

  4. import cairo   

  5. import pycha.pie  

  6. import pycha.bar  

  7. import pycha.scatter  

  8. import pycha.stackedbar  

  9. import pycha.line  

  10.   

  11. #设置画布  

  12. def set_charvalue():  

  13.     width,height=600,600   

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

  15.     return surface  

  16.       

  17. #画饼图  

  18. def draw_pie(surface, options, dataSet):  

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

  20.     chart.addDataset(dataSet)   

  21.     chart.render()   

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

  23.   

  24. #垂直直方图  

  25. def draw_vertical_bar(surface, options, dataSet):  

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

  27.     chart.addDataset(dataSet)   

  28.     chart.render()   

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

  30.    

  31. #垂直水平直方图      

  32. def draw_horizontal_bar(surface, options, dataSet):  

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

  34.     chart.addDataset(dataSet)   

  35.     chart.render()   

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

  37.       

  38. #线图      

  39. def draw_line(surface, options, dataSet):  

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

  41.     chart.addDataset(dataSet)   

  42.     chart.render()   

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

  44.   

  45. #点图      

  46. def draw_scatterplot(surface, options, dataSet):  

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

  48.     chart.addDataset(dataSet)   

  49.     chart.render()   

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

  51.   

  52. #垂直块图       

  53. def draw_stackedverticalbarChar(surface, options, dataSet):  

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

  55.     chart.addDataset(dataSet)   

  56.     chart.render()   

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

  58.   

  59. #水平块图  

  60. def draw_stackedhorizontalbarChart(surface, options, dataSet):  

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

  62.     chart.addDataset(dataSet)   

  63.     chart.render()   

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

  65.       

  66. if __name__ == '__main__':  

  67.     ''''' 

  68.     Function:使用pycha画各种图表 

  69.     Input:NONE 

  70.     Output: NONE 

  71.     author: socrates 

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

  73.     date:2012-02-28 

  74.     '''  

  75.     #数据来源  

  76.     dataSet=(   

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

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

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

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

  81.             )   

  82.       

  83.     #图像属性定义  

  84.     options={   

  85.                 'legend':{

    'hide':False},   

  86.                 'title':'手机销售量分布图(by dyx1024)',  

  87.                 'titleColor':'#0000ff',  

  88.                 'titleFont':'字体',  

  89.                 'background':{

    'chartColor''#ffffff'},   

  90.                 'axis':{

    'labelColor':'#ff0000'},  

  91.             }       

  92.       

  93.       

  94.     surface = set_charvalue()  

  95.       

  96.     #根据需要调用不同函数画不同形状的图  

  97.     #draw_pie(surface, options, dataSet)  

  98.     #draw_vertical_bar(surface, options, dataSet)  

  99.     #draw_horizontal_bar(surface, options, dataSet)  

  100.     #draw_scatterplot(surface, options, dataSet)  

  101.     #draw_stackedverticalbarChar(surface, options, dataSet)  

  102.     #draw_stackedhorizontalbarChart(surface, options, dataSet)  

  103.     draw_line(surface, options, dataSet)  

  104.       

  105.           



二、测试:

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):

本文转自 chengxuyonghu 51CTO博客,原文链接:http://blog.51cto.com/6226001001/1576046,如需转载请自行联系原作者
你可能感兴趣的文章
企业实践用户邮箱导入/导出(第2部分)
查看>>
如何学习Linux命令-初级篇
查看>>
从Oracle Public Yum为Oracle Linux建立本地的Yum源
查看>>
静态路由和默认路由
查看>>
关于阿里开发者招聘节 |这5道笔试真题 你会吗!???
查看>>
C#的异常处理机制
查看>>
vsftp:500 OOPS: could not bind listening IPv4 sock
查看>>
Linux安装BTCPayServer并设置比特币BTC和Lightning支付网关
查看>>
mysql安装,远程连接,以及修改密码
查看>>
Mybatis查询返回Map类型数据
查看>>
java的深拷贝与浅拷贝
查看>>
程序员如何提高工作效率
查看>>
promise
查看>>
将Java应用部署到SAP云平台neo环境的两种方式
查看>>
数据批量导入Oracle数据库
查看>>
调用lumisoft组件发邮件 不需要身份验证 不需要密码
查看>>
DW 正则
查看>>
抓屏原理
查看>>
UNIX网络编程读书笔记:TCP输出、UDP输出和SCTP输出
查看>>
扩展 DbUtility (1)
查看>>