本文详细介绍python 使用matplotlib.pyplot.pie绘制饼图(pie)

本文快速预览

更多好文,欢迎随缘关注@

image

image

目录

默认参数

修改配色

饼图某部分突出or爆炸显示

格式化显示每部分数据

圈中文字与中心距离

周围标签名与中心距离

饼图开始角度

饼图半径

顺时针or逆时针显示

饼图框属性设置

饼图中文本属性

饼图高度个性化设置

添加图例

matplotlib.pyplot.pie

语法:matplotlib.pyplot.pie(x, explode=None, labels=None, colors=None, autopct=None, pctdistance=0.6, shadow=False, labeldistance=1.1, startangle=0, radius=1, counterclock=True, wedgeprops=None, textprops=None, center=0, 0, frame=False, rotatelabels=False, *, normalize=None, data=None)

默认参数

import matplotlib.pyplot as plt

import palettable

my_dpi=96

plt.figure(figsize=(480/my_dpi,480/my_dpi),dpi=my_dpi)

plt.pie(x=[1,2,3],#指定绘图数据

labels=['A','B','C'],#为饼图添加标签说明

)

plt.show()

image

修改配色

关于颜色的使用可看之前的文章,有详细介绍:一文搞定python颜色盘

my_dpi=96

plt.figure(figsize=(480/my_dpi,480/my_dpi),dpi=my_dpi)

plt.pie(x=[1,2,3],

labels=['A','B','C'],

colors=["#d5695d", "#5d8ca8", "#65a479"],#修改饼图颜色,传入颜色list

#colors=plt.cm.get_cmap('Set3')(range(5)),#使用matplotlib自带颜色

#colors=palettable.cartocolors.qualitative.Bold_9.mpl_colors,#使用palettable配色库

)

plt.show()

image

饼图某部分突出or爆炸显示

my_dpi=96

plt.figure(figsize=(480/my_dpi,480/my_dpi),dpi=my_dpi)

plt.pie(x=[1,2,3],

labels=['A','B','C'],

colors=["#d5695d", "#5d8ca8", "#65a479"],

explode=(0, 0.2, 0),#某部分突出显示,值越大,距离中心越远,该法可解决饼图字体重叠的问题

)

plt.show()

image

格式化显示每部分数据

my_dpi=96

plt.figure(figsize=(480/my_dpi,480/my_dpi),dpi=my_dpi)

plt.pie(x=[1,2,3],

labels=['A','B','C'],

colors=["#d5695d", "#5d8ca8", "#65a479"],

autopct='%.2f%%',#格式化输出百分比

)

plt.show()

image

圈中文字与中心距离

my_dpi=96

plt.figure(figsize=(480/my_dpi,480/my_dpi),dpi=my_dpi)

plt.pie(x=[1,2,3],

labels=['A','B','C'],

colors=["#d5695d", "#5d8ca8", "#65a479"],

autopct='%.2f%%',

pctdistance=0.8,#百分比标签与圆心的距离

)

plt.show()

image

周围标签名与中心距离

my_dpi=96

plt.figure(figsize=(480/my_dpi,480/my_dpi),dpi=my_dpi)

plt.pie(x=[1,2,3],

labels=['A','B','C'],

colors=["#d5695d", "#5d8ca8", "#65a479"],

autopct='%.2f%%',

labeldistance=1.5,#labels与圈边界的距离,默认为1.1

)

plt.show()

image

饼图开始角度

my_dpi=96

plt.figure(figsize=(480/my_dpi,480/my_dpi),dpi=my_dpi)

plt.pie(x=[1,2,3],

labels=['A','B','C'],

colors=["#d5695d", "#5d8ca8", "#65a479"],

autopct='%.2f%%',

startangle=45,#饼图的开始角度,默认为0度

)

plt.show()

image

饼图半径

my_dpi=96

plt.figure(figsize=(480/my_dpi,480/my_dpi),dpi=my_dpi)

plt.pie(x=[1,2,3],

labels=['A','B','C'],

colors=["#d5695d", "#5d8ca8", "#65a479"],

autopct='%.2f%%',

radius=1.3,#饼图半径,默认为1

)

plt.show()

image

顺时针or逆时针显示

my_dpi=96

plt.figure(figsize=(480/my_dpi,480/my_dpi),dpi=my_dpi)

plt.pie(x=[1,2,3],

labels=['A','B','C'],

colors=["#d5695d", "#5d8ca8", "#65a479"],

autopct='%.2f%%',

counterclock=False,#关闭逆时针显示

)

plt.show()

image

饼图框属性设置

my_dpi=96

plt.figure(figsize=(480/my_dpi,480/my_dpi),dpi=my_dpi)

plt.pie(x=[1,2,3],

labels=['A','B','C'],

colors=["#d5695d", "#5d8ca8", "#65a479"],

autopct='%.2f%%',

#设置框属性

wedgeprops={'edgecolor':'r',#内外框颜色

'linestyle':'--',#线型

'alpha':0.5,#透明度

#更多参考matplotlib.patches.Wedge

}

)

plt.show()

image

饼图中文本属性

my_dpi=96

plt.figure(figsize=(480/my_dpi,480/my_dpi),dpi=my_dpi)

plt.pie(x=[1,2,3],

labels=['A','B','C'],

colors=["#d5695d", "#5d8ca8", "#65a479"],

autopct='%.2f%%',

#饼图中文本的属性

textprops={'color':'r',#文本颜色

'fontsize':16,#文本大小

'fontfamily':'Microsoft JhengHei',#设置微软雅黑字体

#更多参考matplotlib.pyplot.text

}

)

plt.show()

image

饼图高度个性化设置

每一部分特异设置

饼图中每一部分都可以拆开单独个性化设置。

plt.pie返回以下三个对象,相应个性化设置都可参考Matplolib详细文档:

matplotlib.patches.Wedge

matplotlib.text.Text

matplotlib.text.Text

my_dpi=96

plt.figure(figsize=(680/my_dpi,680/my_dpi),dpi=my_dpi)

patches, texts, autotexts = plt.pie(x=[1,2,3],#返回三个对象

labels=['A','B','C'],

colors=["#d5695d", "#5d8ca8", "#65a479"],

autopct='%.2f%%',

explode=(0.1,0,0)

)

texts[0].set_color('r')#修改A标签的颜色

texts[1].set_size('20')#修改B的大小

autotexts[2].set_color('b')#修改50.00%的颜色

#matplotlib.patches.Wedge

patches[0].set_alpha(0.3)#A组分设置透明度

patches[2].set_hatch('|')#C组分添加网格线

patches[1].set_hatch('x')

plt.legend(patches, ['A','B','C'],#添加图例

title="Pie Learning",

loc="center left",

fontsize=15,

bbox_to_anchor=(1, 0, 0.5, 1))

plt.title('Your pie',size=20)

plt.show()

image

添加图例

#这里简单介绍,后面单独开一篇写图例设置

from string import ascii_letters

my_dpi=96

plt.figure(figsize=(480/my_dpi,480/my_dpi),dpi=my_dpi)

patches, texts, autotexts = plt.pie(x=range(1,12),

labels=list(ascii_letters[26:])[0:11],

colors=palettable.cartocolors.qualitative.Bold_9.mpl_colors,

autopct='%.2f%%',

)

plt.legend(patches, list(ascii_letters[26:])[0:11],#添加图例

title="Pie Learning",

loc="center left",

bbox_to_anchor=(1, 0, 0.5, 1),

ncol=2,#控制图例中按照两列显示,默认为一列显示,

)

image

参考资料

更多好文,欢迎随缘关注@

python excel 饼图 简书_Python可视化29_matplotlib-饼图(pie)相关推荐

  1. python对excel操作简书_Python实现EXCEL常用操作——pandas简介

    知乎的代码块太丑了,这里的内容就更新到简书了Python实现EXCEL常用操作--pandas简介​www.jianshu.com EXCEL是日常办公最常用的软件,然而遇到数据量特别大(超过10W条 ...

  2. python excel 饼图 简书_Python实现绘画多个饼图

    实现多饼图绘制,简单饼图实现及pie详细介绍,可参考第一篇. 1.效果展示 Figure_1.png 2.代码 import matplotlib.pyplot as plt # 同时绘制四个饼图 l ...

  3. python对excel操作简书_Python读写Excel表格,就是这么简单粗暴又好用

    最近在做一些数据处理和计算的工作,因为数据是以.CSV格式保存的,因此刚开始直接用Excel来处理. 但是做着做着发现重复的劳动,其实并没有多大的意义,于是就想着写个小工具帮着处理. 以前正好在一本书 ...

  4. python对excel操作简书_Python 操作Excel

    操作Excel的Python模块有很多,从操作难易度和功能两方面考虑,选择了下面两个模块. 1. 读Excel模块 xlrd API reference xlrd提供了按行读取和按单元格读取两种方式 ...

  5. python对excel操作简书_python Excel 写

    1.优点 一.功能比较强 相对而言,这是除Excel自身之外功能最强的工具了.比如我就用到了它提供的:字体设置.前景色背景色.border设置.视图缩放(zoom).单元格合并.autofilter. ...

  6. python 串口助手 简书_python用pyserial读取串口问题解决

    object is not callable Error: 'bool' object is not callable 没有返回值 正确代码: ser = serial.Serial('COM7', ...

  7. 小甲鱼python课后题简书_Python练习题100道

    1.有四个数字:1,2,3,4,能组成多少个互不相同且无重复数字的三位数?各是多少? 方法一:遍历所有可能,把重复的剃掉. total=0 for i in range(1,5): for j in ...

  8. python scrapy框架 简书_python爬虫框架——Scrapy架构原理介绍

    说起写爬虫,大多数第一时间想到的就是python了.python语法简洁明了,加上及其丰富好用的库,用它来写爬虫有天然的优势. 之前学python的时候也用requests+lxml写过几个爬虫玩,但 ...

  9. python学习笔记简书_Python学习笔记

    本人在廖雪峰的python教程学习python,在此记录一些笔记,记一些重要的东西,以便查询及复习. 输入与输出 用print()在括号中加上字符串,就可以向屏幕上输出指定的文字. print()会依 ...

最新文章

  1. 3DSlicer28:PLUS
  2. 关于文件操作的\r\n问题。
  3. linux vi 出现下划线,Vim高亮当前行(显示为下划线)的解决方案
  4. 面对1.3 亿用户数据泄露,企业如何围绕核心数据构建安全管理体系?
  5. 从零实现深度学习框架【实现自己的PyTorch】
  6. GBK汉字的索引方法
  7. python中grid的用法_SVM中如何使用grid.py
  8. 浙江省二级计算机vfp,浙江省高校计算机等级考试大纲(二级——VisualFoxPro语言程序设计大纲)...
  9. QQ小游戏 微信小游戏 即时通信 IM 删除会话 deleteConversation sdk
  10. sd卡umount时busy解决方法
  11. WebGis——Pixi开发vue项目之创建pixi应用并显示一个精灵(一)
  12. java计算机毕业设计Vue垃圾分类指南平台设计与实现源码+数据库+系统+lw文档
  13. uniapp授权登录微信支付宝小程序获取code和基础信息
  14. 26个字母和数字符号ASCII码对照表
  15. 2013年7月美国Boston之旅
  16. how to do research
  17. Dialog的Dismiss方法使用注意事项
  18. 东方博宜OJ 1052 - 【入门】行李托运费
  19. openEuler@树莓派
  20. 不眠者-泽队:广东省工科赛—全地形越障排爆组(开源7天)

热门文章

  1. 安卓手机开启开发者选项
  2. 武汉大学计算机音乐,名家论坛丨预告:聆听音乐
  3. 如何安装OpenCVE
  4. 逆向_base64_rc4_----笔记
  5. 【矩阵乘】【DP】【codevs 1305】Freda的道路
  6. 【Python机器学习基础教程】(三)
  7. vim的配置文件。转自:http://www.cnblogs.com/ma6174/
  8. 利用正则表达式做验证登录
  9. 手机浏览器类型ua php,通过userAgent判断手机浏览器类型(示例代码)
  10. 淘宝直播接口分析!!! 测试!!!