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,如需转载请自行联系原作者
目录
相关文章
|
数据可视化 算法 JavaScript
基于图论的时间序列数据平稳性与连通性分析:利用图形、数学和 Python 揭示时间序列数据中的隐藏模式
本文探讨了如何利用图论分析时间序列数据的平稳性和连通性。通过将时间序列数据转换为图结构,计算片段间的相似性,并构建连通图,可以揭示数据中的隐藏模式。文章介绍了平稳性的概念,提出了基于图的平稳性度量,并展示了图分区在可视化平稳性中的应用。此外,还模拟了不同平稳性和非平稳性程度的信号,分析了图度量的变化,为时间序列数据分析提供了新视角。
314 0
基于图论的时间序列数据平稳性与连通性分析:利用图形、数学和 Python 揭示时间序列数据中的隐藏模式
|
存储 程序员 Python
小白也能用的代码!1行Python,把PPT转成1张长图
大家好,我是程序员晚枫。今天介绍`python-office`库的新功能:仅用1行Python代码将PPT转为单张长图。
187 11
 小白也能用的代码!1行Python,把PPT转成1张长图
在Python中,`tkinter`是一个用于创建图形用户界面(GUI)的标准库。
在Python中,`tkinter`是一个用于创建图形用户界面(GUI)的标准库。
|
算法 Python
Python 大神修炼手册:图的深度优先&广度优先遍历,深入骨髓的解析
【7月更文挑战第12天】Python进阶必学:DFS和BFS图遍历算法。理解图概念,用邻接表建无向图,实现DFS和BFS。DFS适用于查找路径,BFS解决最短路径。通过实例代码加深理解,提升编程技能。
142 4
|
算法 Python
逆袭之路!用 Python 玩转图的 DFS 与 BFS,让数据结构难题无处遁形
【7月更文挑战第12天】图的遍历利器:DFS 和 BFS。Python 中,图可表示为邻接表或矩阵。DFS 沿路径深入,回溯时遍历所有可达顶点,适合找路径和环。BFS 层次遍历,先近后远,解决最短路径问题。两者在迷宫、网络路由等场景各显神通。通过练习,掌握这些算法,图处理将游刃有余。
191 3
|
存储 算法 Python
“解锁Python高级数据结构新姿势:图的表示与遍历,让你的算法思维跃升新高度
【7月更文挑战第13天】Python中的图数据结构用于表示复杂关系,通过节点和边连接。常见的表示方法是邻接矩阵(适合稠密图)和邻接表(适合稀疏图)。图遍历包括DFS(深度优先搜索)和BFS(广度优先搜索):DFS深入探索分支,BFS逐层访问邻居。掌握这些技巧对优化算法和解决实际问题至关重要。**
173 1
|
存储 算法 搜索推荐
Python高手必备!揭秘图(Graph)的N种风骚表示法,让你的代码瞬间高大上
【7月更文挑战第10天】在Python中,图数据结构通过邻接矩阵、邻接表、边列表和邻接集来表示,用于社交网络分析和路径查找等。邻接矩阵用二维数组存储连接,邻接表仅存储每个节点的邻居,节省空间。边列表列出所有边,而邻接集用集合确保邻居唯一性。选择合适表示法能提升代码效率和可读性,展现编程技巧。
167 1
|
机器学习/深度学习 数据采集 TensorFlow
使用Python实现深度学习模型:图神经网络(GNN)
使用Python实现深度学习模型:图神经网络(GNN)
1131 1
|
开发框架 Python
Python的`pygame`库用于2D游戏开发,涵盖图形、音频和输入处理。
【6月更文挑战第21天】Python的`pygame`库用于2D游戏开发,涵盖图形、音频和输入处理。要开始,先通过`pip install pygame`安装。基本流程包括:初始化窗口、处理事件循环、添加游戏元素(如玩家和敌人)、响应用户输入、更新游戏状态及结束条件。随着项目发展,可逐步增加复杂性。
445 1
|
数据可视化 Linux 数据格式
`seaborn`是一个基于`matplotlib`的Python数据可视化库,它提供了更高级别的接口来绘制有吸引力的和信息丰富的统计图形。`seaborn`的设计目标是使默认图形具有吸引力,同时允许用户通过调整绘图参数来定制图形。
`seaborn`是一个基于`matplotlib`的Python数据可视化库,它提供了更高级别的接口来绘制有吸引力的和信息丰富的统计图形。`seaborn`的设计目标是使默认图形具有吸引力,同时允许用户通过调整绘图参数来定制图形。

推荐镜像

更多