饼状图(pie chart)一般用于描述分类型数据的相对频数或百分数频数分布,呈现部分与总体的关系。


  

一、导入绘图数据

首先导入绘图所需的数据。

import os
import pandas as pdos.chdir(r'F:\公众号\6.学习python')   #设置成存放数据文件夹路径
date = pd.read_csv("股票数据.csv", encoding = 'GBK')    #读取数据

注:如需文中数据进行练习,可到公众号中回复“股票数据波动”即可免费获取。展示前几行数据如下:
  

  
  

二、饼状图

1 饼状图绘图原理

Python中绘制饼状图需用matplotlib.pyplot中的pie函数,该函数的基本语法为:

pie(x, [explode], [labels], [colors], [autopct], [pctdistance],  [labeldistance], [startangle], [radius], [textprops], **kwargs)

参数说明:
  
x:数组,绘制饼状图的数据。
  
[explode]:默认值为None的可选参数。若非None,则是和x相同长度的数组,用来指定每部分的离心偏移量。
  
[labels]:列表,指定每个饼块的名称,默认值None,为可选参数。
  
[colors]:特定字符或数组,指定饼图的颜色,默认值None,为可选参数。
  
[autopct]:特定字符,指定饼图中数据标签的显示方式,默认值None,为可选参数。
  
[pctdistance]:浮点数,指定显示比例距离圆心的距离。默认值0.6,为可选参数。
  
[labeldistance]:浮点数,指定每个扇形对应标签与圆心的距离,默认值1.1,为可选参数。
  
[startangle]:浮点数,指定从x轴逆时针旋转饼图的开始角度,默认值None,为可选参数。
  
[radius]:浮点数,指定饼图的半径,默认值1,为可选参数。
  
[textprops]:字典,设置文本对象的字典参数,默认值None,为可选参数。
  
**kwargs:不定长关键字参数,用字典形式设置条形图的其它参数。
  
  

2 绘制饼状图

  
以每年股票成交笔数总计值绘制饼状图,具体语句如下:

import matplotlib.pyplot as plt                #导入绘图包plt.rcParams['font.sans-serif'] = ['SimHei']   #解决中文显示问题
plt.rcParams['axes.unicode_minus'] = False    # 解决中文显示问题date = date.set_index('日期')                 #把日期列设为索引
date.index = pd.to_datetime(date.index)       #把索引转为时间格式
result = date[['成交笔数']].groupby(date.index.year).sum()           #按年总计股票成交笔数
plt.pie(result['成交笔数'], labels=result.index, autopct='%3.1f%%')  #以时间为标签,总计成交笔数为数据绘制饼图,并显示3位整数一位小数
plt.title('股票每年成交笔数饼图')             #加标题
plt.show()

得到结果如下:
  

  
  

3 绘制饼状图并更改显示字体特征

  
以每年股票成交笔数总计值绘制饼状图,更改字体颜色、尺寸并加粗,具体语句如下:

plt.pie(result['成交笔数'], labels=result.index, autopct='%3.1f%%', textprops={'color':'b', 'size':10, 'weight':'bold'})  #设置显示字体颜色、尺寸、加粗
plt.title('股票每年成交笔数饼图', c='b')             #加标题
plt.show()

得到结果如下:
  

  
  

4 绘制指定离心偏移量饼状图

  
以每年股票成交笔数总计值为数值,标准化换手率为离心偏移量绘制饼状图,具体语句如下:

result = date.groupby(date.index.year).agg(sum=('成交笔数', 'sum'), avg=('换手率', 'mean'))  #计算每年成交笔数总计值,换手率均值
plt.pie(result['sum'], explode=result['avg']/result['avg'].max(), labels=result.index, autopct='%3.1f%%')  #以成交笔数总计值为数值,标准化换手率为离心值绘制饼状图
plt.show()

得到结果如下:
  

  
  

5 绘制多重显示饼状图

  
根据每年股票成交笔数总计值为数值、标准化换手率为颜色绘制饼图,具体语句如下:

import matplotlib.cm as cm  #导入库result = date.groupby(date.index.year).agg(sum=('成交笔数', 'sum'), avg=('换手率', 'mean'))  #计算每年成交笔数总计值,换手率均值
plt.pie(result['sum'], colors=cm.ScalarMappable().to_rgba(result['avg']), labels=result.index, autopct='%3.1f%%') #根据换手率均值设置颜色绘制饼图
plt.title('绘制每年股票成交笔数总计值为数值、标准化换手率为颜色的饼图')  #设置标题
sm = plt.cm.ScalarMappable(norm=plt.Normalize(vmin=result['avg'].min(), vmax=result['avg'].max()))
plt.colorbar(sm)           #根据换手率均值的从小到大显示颜色
plt.show()

得到结果如下:
  

  
  

6 绘制嵌套饼状图

  
以每年股票成交笔数总计值绘制外圈,设置饼块保留外圈的20%,边框颜色为白色。以每年换手率均值绘制内圈,半径为原来的80%,字体显示在距圆心50%的地方。具体语句如下:

result = date.groupby(date.index.year).agg(sum=('成交笔数', 'sum'), avg=('换手率', 'mean'))  #计算每年成交笔数总计值,换手率均值
plt.pie(result['sum'], pctdistance=0.9, wedgeprops={'width':0.2, 'edgecolor':'w'}, labels=result.index, autopct='%3.1f%%') #绘制外圈
plt.pie(result['avg'], pctdistance=0.5, radius=0.8, autopct='%3.1f%%')  #绘制内圈
plt.show()

得到结果:
  

  
至此,在Python中绘制饼状图已全部讲解完毕,感兴趣的同学可以自己实现一遍图片。
  
你可能感兴趣:
用Python绘制皮卡丘
用Python绘制词云图
Python人脸识别—我的眼里只有你
Python画好看的星空图(唯美的背景)
用Python中的py2neo库操作neo4j,搭建关联图谱
Python浪漫表白源码合集(爱心、玫瑰花、照片墙、星空下的告白)

长按(扫一扫)识别上方二维码学习更多Python和建模知识,让你的学习和工作更出彩。

最全Python绘制饼形图(饼状图)相关推荐

  1. Jpgraph php怎么变异,php使用Jpgraph绘制3D饼状图的方法

    此文实例介绍了php使用Jpgraph绘制3D饼状图的方法.分享给大伙供大家参考.具体实现方法如下: include ("src/jpgraph.php"); include (& ...

  2. 前端基础学习之h5-canvas入门3-曲线的绘制及绘制完整饼状图

    canvas直线绘制及绘制完整折线图 canvas一些基础的概念在直线绘制中已经提过.下面主要提曲线和文本绘制,以完成一个完整饼状图的绘制. (一)曲线的绘制 弧度概念 1 弧度 = 1 r(半径) ...

  3. Python使用matplotlib设置pandas绘制的饼状图扇形标签

    2021年全国高校Python课程高级研修班(线上) 中国大学MOOC"Python程序设计基础"第4次开课 推荐图书: <Python程序设计(第3版)>,(ISBN ...

  4. matplotlib 绘制并列饼状图

    废话不说,先上图.这个是实际效果. import matplotlib.pyplot as pltplt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中 ...

  5. echarts绘制百家姓饼状图

    echarts ECharts 是一个使用 JavaScript 实现的开源可视化库,涵盖各行业图表,满足各种需求. ECharts 遵循 Apache-2.0 开源协议,免费商用. ECharts ...

  6. Ehcarts绘制3D饼状图

    需要用到echarts.min.js和echarts-gl.min.js 网上找了半天没找到靠谱的自己查资料弄一个了方便自己以后看 直接复制到html文件中即可运行 <!DOCTYPE html ...

  7. python立体感的饼状图如何做_AI教程:如何制作3D立体饼状图表?

    原标题:AI教程:如何制作3D立体饼状图表? 辛辛苦苦分析一堆大数据,竟然没人看!到底怎么办?俗话说,有图有真相,一图胜千言,取悦了眼球,剩下的都好说.如果你正着手于从数据中洞察出有用信息,那你所需要 ...

  8. Origin2017绘制3D饼状图 去掉指定图例

    Origin在绘制饼状图时,有时只想显示部分图例,如下图所示: 针对此,可以先绘制图像. 这里可以看到所有的图例都例举出来了.针对此,可以双击图例部分.可以看到图例变成了下面的内容: 针对这个,可以进 ...

  9. python做房源饼状图_python使用matplotlib画饼状图

    %matplotlib inlineimport matplotlib.pyplot as plt# 121 > 1行2列第1个fig1 = plt.subplot(121)plt.pie([1 ...

最新文章

  1. StringBuilder内存碎片对性能的影响
  2. 非x面容解锁插件ios13_iOS13.5 Beta3 推送,戴口罩解锁更加方便
  3. SAP License:后SAP ECC 6.0 时代
  4. cleanlab(解决图像标记错误)
  5. Android运行时修改Manifest,Android如何动态修改Manifest文件
  6. GBK与UNICODE编码互转
  7. OPPO设备设置第三方桌面为默认Launcher
  8. 松弛型内存模型(Relaxed memory models)的一个有趣的例子
  9. 冬吃萝卜有讲究 名中医解疑惑
  10. 泡泡网 前有古人后有来者! 胶水处理器回顾
  11. shadowgun的飘扬旗帜shader
  12. 计算机工程好发论文么,计算机工程期刊发表论文有什么要求
  13. 动漫,简史早期的日本动画
  14. 【前端程序员的中秋节】中秋节,送你千盏孔明灯,万家灯火故事长
  15. 数据结构中树的直径问题
  16. flickr 的全局主键生成方案
  17. 使用SQL获取当前周别,oracle日期处理
  18. 善用产业大数据平台,赋能产业数字化转型升级
  19. Python学习七(线程)
  20. 摩根大通的最新指南——将AI应用于算法交易

热门文章

  1. 数字图像处理 第五章图像复原与重建
  2. Python-阿里云地图的爬取
  3. 基于springboot+vue的食疗系统
  4. BIOS14: Hypothesis testing(假设检验)using R
  5. 操作系统原理实验(3):操作系统的基石中断与异常
  6. 新手入门 Python 的学习网站
  7. tooth的用法_tooth的复数形式
  8. Java如何解析个人或他人微信二维码内的信息
  9. 浅谈jodaTime 的使用
  10. 淘宝PC自动化测试框架AutomanX-王超