饼图英文学名为Sector Graph,又名Pie Graph。常用于统计学模块。


画饼图用到的方法为:matplotlib.pyplot.pie( )

  1. #!/usr/bin/env python
  2. #!-*-coding:utf-8 -*-
  3. #!@Author : Biyoulin
  4. #!@Time : 2018/9/4 10:45
  5.  
  6. import matplotlib.pyplot as plt
  7. plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
  8.  
  9. labels = ['娱乐','育儿','饮食','房贷','交通','其它']
  10. sizes = [2,5,12,70,2,9]
  11. explode = (0,0,0,0.1,0,0)
  12. plt.pie(sizes,explode=explode,labels=labels,autopct='%1.1f%%',shadow=False,startangle=150)
  13. plt.title("饼图示例-8月份家庭支出")
  14. plt.show()  

上面的图形为椭圆形,可加入以下一条命令将之显示为长宽相等的饼图。

  1. plt.axis('equal') #该行代码使饼图长宽相等



pie 函数格式:

  1. def pie(x, explode=None, labels=None, colors=None, autopct=None,
  2. pctdistance=0.6, shadow=False, labeldistance=1.1, startangle=None,
  3. radius=None, counterclock=True, wedgeprops=None, textprops=None,
  4. center=(0, 0), frame=False, rotatelabels=False, hold=None, data=None)

pie 函数参数详解,英文原版请参见:matplotlib官网pie函数

  1. x :(每一块)的比例,如果sum(x) > 1会使用sum(x)归一化;
  2. labels :(每一块)饼图外侧显示的说明文字;
  3. explode :(每一块)离开中心距离;
  4. startangle :起始绘制角度,默认图是从x轴正方向逆时针画起,如设定=90则从y轴正方向画起;
  5. shadow :在饼图下面画一个阴影。默认值:False,即不画阴影;
  6. labeldistance :label标记的绘制位置,相对于半径的比例,默认值为1.1, 如<1则绘制在饼图内侧;
  7. autopct :控制饼图内百分比设置,可以使用format字符串或者format function
  8. '%1.1f'指小数点前后位数(没有用空格补齐);
  9. pctdistance :类似于labeldistance,指定autopct的位置刻度,默认值为0.6
  10. radius :控制饼图半径,默认值为1
    counterclock :指定指针方向;布尔值,可选参数,默认为:True,即逆时针。将值改为False即可改为顺时针。
    wedgeprops :字典类型,可选参数,默认值:None。参数字典传递给wedge对象用来画一个饼图。例如:wedgeprops={'linewidth':3}设置wedge线宽为3
  11. textprops :设置标签(labels)和比例文字的格式;字典类型,可选参数,默认值为:None。传递给text对象的字典参数。
  12. center :浮点类型的列表,可选参数,默认值:(0,0)。图标中心位置。
  13. frame :布尔类型,可选参数,默认值:False。如果是true,绘制带有表的轴框架。
  14. rotatelabels :布尔类型,可选参数,默认为:False。如果为True,旋转每个label到指定的角度。

pie()函数各参数示例:

  1. import matplotlib.pyplot as plt
  2. plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
  3.  
  4. labels = 'A','B','C','D'
  5. sizes = [10,10,10,70]
  6. plt.pie(sizes,labels=labels)
  7.  
  8. plt.title("饼图详解示例")
  9. plt.text(1,-1.2,'By:Biyoulin')
  10. plt.show()

1、x:每一块饼图的比例,为必填项,如果sum(x)>1,会将多出的部分进行均分;

  1. sizes = [10,10,20,60]   

2、labels : 每一块饼图外侧显示的说明文字;

  1. labels = 'A','B','C','Change'

3、explode : 每一块饼图 离开中心距离,默认值为(0,0),就是不离开中心;

  1. explode = (0,0,0.1,0) #将第三块分离出来

4、colors:数组,可选参数,默认为:None;用来标注每块饼图的matplotlib颜色参数序列。如果为None,将使用当前活动环的颜色。

  1. colors = ['r','g','y','b'] #自定义颜色列表
  2. plt.pie(sizes,explode=explode,labels=labels,colors=colors)

5、shadow :是否阴影,默认值为False,即没有阴影,将其改为True,显示结果如下图所示;

  1. plt.pie(sizes,explode=explode,labels=labels,colors=colors,shadow=True)  # 添加阴影

6、autopct :控制饼图内百分比设置,可以使用format字符串或者format function;

  '%1.1f':指小数点后保留一位有效数值;

  1. plt.pie(sizes,explode=explode,labels=labels,colors=colors,autopct='%1.1f',shadow=True) 

plt.pie(sizes,explode=explode,labels=labels,colors=colors,autopct='%1.2f%%',shadow=True) #保留两位小数点,增加百分号(%);

7、startangle :起始绘制角度,默认图是从x轴正方向逆时针画起,如设定startangle=90则从y轴正方向画起;

  1. plt.pie(sizes,explode=explode,labels=labels,
  2. colors=colors,autopct='%1.2f%%',shadow=True,startangle=30)

8、counterclock:指定指针方向;布尔值,可选参数,默认为:True,即逆时针。将值改为False即可改为顺时针。

  1. plt.pie(sizes,explode=explode,labels=labels,
  2. colors=colors,autopct='%1.2f%%',shadow=True,startangle=30,counterclock=False) 

9、labeldistance : label绘制位置,相对于半径的比例, 如<1则绘制在饼图内侧,默认值为1.1;

  1. plt.pie(sizes,explode=explode,labels=labels,colors=colors,
  2. autopct='%1.2f%%',shadow=True,labeldistance=0.8,startangle=30,counterclock=False)

10、radius :控制饼图半径;浮点类型,可选参数,默认为:None。如果半径是None,将被设置成1。

  1. plt.pie(sizes,explode=explode,labels=labels,colors=colors,autopct='%1.2f%%',
  2. shadow=True,labeldistance=0.8,startangle=30,radius=1.3,counterclock=False)  

11、pctdistance : 类似于labeldistance,指定autopct的位置刻度,默认值为0.6;

  1. plt.pie(sizes,explode=explode,labels=labels,colors=colors,autopct='%1.2f%%',
  2. pctdistance=0.4,shadow=True,labeldistance=0.8,startangle=30,radius=1.3,counterclock=False) 

12、textprops :设置标签(labels)和比例文字的格式;字典类型,可选参数,默认值为:None。

  1. plt.pie(sizes,explode=explode,labels=labels,colors=colors,autopct='%1.2f%%',
  2. pctdistance=0.4,shadow=True,labeldistance=0.8,startangle=30,radius=1.3,
  3. counterclock=False,textprops={'fontsize':20,'color':'black'})

13、将饼图显示为正圆形,plt.axis( );

  1. plt.axis('equal')

14、添加图例,plt.legend( );

  1. plt.legend(loc="upper right",fontsize=10,bbox_to_anchor=(1.1,1.05),borderaxespad=0.3)
  2. # loc = 'upper right' 位于右上角
  3. # bbox_to_anchor=[0.5, 0.5] # 外边距 上边 右边
  4. # ncol=2 分两列
  5. # borderaxespad = 0.3图例的内边距

15、保存图表,plt.savefig( );

  1. plt.savefig("C:\\饼图02.png",dpi=200,bbox_inches='tight')  

  1. #!/usr/bin/env python
  2. #!-*-coding:utf-8 -*-
  3. #!@Author : Biyoulin
  4. #!@Time : 2018/9/4 16:43
  5.  
  6. import matplotlib.pyplot as plt
  7. plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
  8.  
  9. # labels = 'A','B','C','D'
  10. labels = 'A','B','C','Change'
  11. # sizes = [10,10,10,70]
  12. sizes = [10,10,20,60]
  13. explode = (0,0,0.1,0)
  14. colors = ['r','g','y','b']
  15.  
  16. plt.pie(sizes,explode=explode,labels=labels,colors=colors,autopct='%1.2f%%',
  17. pctdistance=0.4,shadow=True,labeldistance=0.8,startangle=30,radius=1.3,
  18. counterclock=False,textprops={'fontsize':20,'color':'black'})
  19.  
  20. plt.title("饼图详解示例")
  21. plt.text(1,-1.2,'By:Biyoulin')
  22. plt.axis('equal')
  23. plt.legend(loc="upper right",fontsize=10,bbox_to_anchor=(1.1,1.05),borderaxespad=0.3)
  24. # loc = 'upper right' 位于右上角
  25. # bbox_to_anchor=[0.5, 0.5] # 外边距 上边 右边
  26. # ncol=2 分两列
  27. # borderaxespad = 0.3图例的内边距
  28.  
  29. plt.savefig("C:\\饼图02.png",dpi=200,bbox_inches='tight')
  30. plt.show()

饼图示例完整代码

作者:biyoulin

出处:http://www.cnblogs.com/biyoulin/

版权声明:本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

matplotlib 知识点11:绘制饼图(pie 函数精讲)的更多相关文章

  1. c# 通过.net自带的chart控件绘制饼图pie chart

    c# 通过.net自带的chart控件绘制饼图pie chart   需要实现的目标是: 1.将数据绑定到pie的后台数据中,自动生成饼图. 2.生成的饼图有详细文字的说明. 具体的实现步骤: > ...

  2. matplotlib 知识点13:绘制散点图(scatter函数精讲)

    散点图是指在回归分析中,数据点在直角坐标系平面上的分布图,散点图表示因变量随自变量而变化的大致趋势,据此可以选择合适的函数对数据点进行拟合. 用两组数据构成多个坐标点,考察坐标点的分布,判断两变量之间 ...

  3. 小白学Python(11)——pyecharts,绘制饼图 Pie

    Pie-基本示例 from example.commons import Faker from pyecharts import options as opts from pyecharts.char ...

  4. [Python] Matplotlib 图表的绘制和美化技巧

    目录 在一张画布中绘制多个图表 加图表元素 气泡图 组合图 直方图 雷达图 树状图 箱形图 玫瑰图 在一张画布中绘制多个图表 Matplotlib模块在绘制图表时,默认先建立一张画布,然后在画布中显示 ...

  5. Python使用Plotly绘图工具,绘制饼图

    今天我们来学习一下如何使用Python的Plotly绘图工具,绘制饼图 使用Plotly绘制饼图的方法,我们需要使用graph_objs中的Pie函数 函数中最常用的两个属性values,用于赋值给需 ...

  6. R绘图 第八篇:绘制饼图(ggplot2)

    geom_bar()函数不仅可以绘制条形图,还能绘制饼图,跟绘制条形图的区别是坐标系不同,绘制饼图使用的坐标系polar,并且设置theta="y": coord_polar(th ...

  7. Python绘制饼图

    Python绘制饼图 1.1 对应代码如下图所示 import matplotlib.pyplot as pltfrom pylab import mplmpl.rcParams['font.sans ...

  8. Python pyecharts绘制饼图

    一.pyecharts绘制饼图语法简介 饼图主要用于表现不同类目的数据在总和中的占比.每个的弧度不是数据量的占比pie.add()方法的用法add(name, attr, value, radius= ...

  9. Python培训:绘制饼图或圆环图

    使用pyplot的pie()函数可以快速地绘制饼图或圆环图,pie()函数的语法格式如下所示: 该函数常用参数的含义如下. ·x:表示扇形或楔形的数据. ·explode:表示扇形或楔形离开圆心的距离 ...

随机推荐

  1. box head上身旋转问题

    现有资源: 1.可旋转上身的动画,旋转角度左右各90度. 2.下身没有旋转动画(腿部左转右转动画) 使用场景: 1.整个模型随鼠标位置旋转,不使用上身旋转动画. 缺点:人物转向动画僵硬.  解决方案: ...

  2. Asp.net工作流workflow实战(一)

    最近开发一个项目用到了工作流引擎,之前研究过微软的workflow所有就用它了,距离上次用有一段时间了,好多东西有点模糊了,就在此处一遍写代码一遍回忆. 首先,在我的项目中新建了.netframwor ...

  3. java web基础知识

    1)TCP三次握手 第一次握手:客户端A将标志位SYN置为1,随机产生一个值为seq=J(J的取值范围为=1234567)的数据包到服务器,客户端A进入SYN_SENT状态,等待服务端B确认: 第二次 ...

  4. Python-通过socket实现一个小型的端口检测工具

    实验机器IP:192.168.220.139,端口开放情况 代码 # -*- coding:utf-8 -*- __author__ = "MuT6 Sch01aR" import ...

  5. <正则吃饺子> :关于Java的native方法(转)

    感谢作者的分享,原文地址:http://blog.csdn.net/wike163/article/details/6635321 一. 什么是Native Method   简单地讲,一个Nativ ...

  6. fdisk查看硬盘分区表

    fdisk [选项] <磁盘>    更改分区表 fdisk [选项] -l <磁盘> 列出分区表 fdisk -s <分区>        给出分区大小(块数) ...

  7. Nodejs调试技术

    基于Chrome浏览器的调试器 既然我们可以通过V8的调试插件来调试,那是否也可以借用Chrome浏览器的JavaScript调试器来调试呢?node-inspector模块提供了这样一种可能.我们需 ...

  8. AngularJs(Part 7)--Build-in Directives

    Directives In AngularJS, we can use a variety of naming conventions to reference directives . In the ...

  9. 《精通Spring4.X企业应用开发实战》读后感第七章(创建增强类)

  10. CSS学习系列3--CSS3中的box-shadow的使用

    在CSS中,text-shadow是给文本添加阴影效果. box-shadow则是给元素块添加周边阴影效果. box-shadow基本的语法形式如下 box-shadow: [inset] x-off ...