开发者社区> 余二五> 正文

Python:使用pycha快速绘制办公常用图(饼图、垂直直方图、水平直方图、散点图等七种图形)

简介:
+关注继续查看

一、代码:


[python] view plaincopy

  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] view plaincopy

  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,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
18746 0
阿里云ECS云服务器初始化设置教程方法
阿里云ECS云服务器初始化是指将云服务器系统恢复到最初状态的过程,阿里云的服务器初始化是通过更换系统盘来实现的,是免费的,阿里云百科网分享服务器初始化教程: 服务器初始化教程方法 本文的服务器初始化是指将ECS云服务器系统恢复到最初状态,服务器中的数据也会被清空,所以初始化之前一定要先备份好。
13673 0
python数据分析基础002 -使用matplotlib绘图(散点图,条形图,直方图)
python数据分析基础002 -使用matplotlib绘图(散点图,条形图,直方图)
14 0
如何设置阿里云服务器安全组?阿里云安全组规则详细解说
阿里云安全组设置详细图文教程(收藏起来) 阿里云服务器安全组设置规则分享,阿里云服务器安全组如何放行端口设置教程。阿里云会要求客户设置安全组,如果不设置,阿里云会指定默认的安全组。那么,这个安全组是什么呢?顾名思义,就是为了服务器安全设置的。安全组其实就是一个虚拟的防火墙,可以让用户从端口、IP的维度来筛选对应服务器的访问者,从而形成一个云上的安全域。
16604 0
Python数据可视化:5段代码搞定散点图绘制与使用,值得收藏
导读:什么是散点图?可以用来呈现哪些数据关系?在数据分析过程中可以解决哪些问题?怎样用Python绘制散点图?本文逐一为你解答。
18292 0
Python数据可视化:5段代码搞定散点图绘制与使用,值得收藏
什么是散点图?可以用来呈现哪些数据关系?在数据分析过程中可以解决哪些问题?怎样用Python绘制散点图?本文逐一为你解答。
1071 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
23702 0
阿里云ECS云服务器初始化设置教程方法
阿里云ECS云服务器初始化是指将云服务器系统恢复到最初状态的过程,阿里云的服务器初始化是通过更换系统盘来实现的,是免费的,阿里云百科网分享服务器初始化教程: 服务器初始化教程方法 本文的服务器初始化是指将ECS云服务器系统恢复到最初状态,服务器中的数据也会被清空,所以初始化之前一定要先备份好。
13935 0
+关注
20381
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
OceanBase 入门到实战教程
立即下载
阿里云图数据库GDB,加速开启“图智”未来.ppt
立即下载
实时数仓Hologres技术实战一本通2.0版(下)
立即下载