前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >局部整体(三)利用python绘制饼图

局部整体(三)利用python绘制饼图

作者头像
HsuHeinrich
发布2024-11-23 08:34:05
发布2024-11-23 08:34:05
17500
代码可运行
举报
文章被收录于专栏:HsuHeinrichHsuHeinrich
运行总次数:0
代码可运行

局部整体(三)利用python绘制饼图

饼图( Pie Plot)简介

饼图是一个将整体划分为几个扇形的圆形统计图表,用于描述数量、频率或百分比之间的相对关系。饼形图适合用来快速展示数据比例分布,但不利于展示较多项目。饼图也因过于关注不同部分彼此或相对于整体的大小关系,导致与其他饼形图作整体比较时不能显示出任何变化而饱受诟病。

快速绘制

基于matplotlib

代码语言:javascript
代码运行次数:0
复制
import matplotlib.pyplot as plt

# 自定义数据
size_of_groups=[12,11,3,30]

# 利用pie函数快速创建
plt.pie(size_of_groups)
plt.show()

定制多样化的饼图

自定义饼图一般是结合使用场景对相关参数进行修改,并辅以其他的绘图知识。参数信息可以通过官网进行查看,其他的绘图知识则更多来源于实战经验,大家不妨将接下来的绘图作为一种学习经验,以便于日后总结。

关于pie的更多用法可参考matplotlib.pyplot.pie[1]

自定义饼图

代码语言:javascript
代码运行次数:0
复制
import matplotlib as mpl
import matplotlib.pyplot as plt
from matplotlib_venn import venn3, venn3_circles

plt.rcParams['font.sans-serif'] = ['SimHei'] # 用来正常显示中文标签

# 自定义数据
names='groupA', 'groupB', 'groupC', 'groupD',
values=[12,11,3,30]

# 初始化布局
fig = plt.figure(figsize=(12,8))

# 添加标签
plt.subplot(1, 4, 1) 
plt.pie(values, labels=names, labeldistance=1.15)
plt.title('添加标签')

# 自定义扇形
plt.subplot(1, 4, 2) 
plt.pie(values, labels=names, labeldistance=1.15, wedgeprops = { 'linewidth' : 3, 'edgecolor' : 'white' })
plt.title('自定义扇形')

# 自定义颜色
plt.subplot(1, 4, 3) 
colors = ['#4F6272', '#B7C3F3', '#DD7596', '#8EB897']
plt.pie(values, labels=names, labeldistance=1.15, 
            wedgeprops = { 'linewidth' : 1, 'edgecolor' : 'white' }, colors=colors)
plt.title('自定义颜色')

# 显示百分比
plt.subplot(1, 4, 4) 
plt.pie(values, labels=names, autopct='%1.1f%%')
plt.title('显示百分比')

plt.show()

拓展-警惕饼图带来的阅读障碍

观察比较三个图形中哪个分组的值最高,同时尝试找出各组之间的值的变化趋势

4是不是很难看出来,下面将饼图转化为条形图再看看呢?

代码语言:javascript
代码运行次数:0
复制
# 饼图比较
import matplotlib as mpl
import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif'] = ['SimHei'] # 用来正常显示中文标签

# 自定义标签
labels = ['a', 'b', 'c', 'd', 'e']

# 初始化布局
fig = plt.figure(figsize=(12,5))

# 饼图1
plt.subplot(1, 3, 1) 
plt.pie([17,18,20,22,24], labels=labels)

# 饼图2
plt.subplot(1, 3, 2) 
plt.pie([20,18,21,20,20], labels=labels)

# 饼图3
plt.subplot(1, 3, 3) 
plt.pie([24,23,21,19,18], labels=labels)

plt.show()
代码语言:javascript
代码运行次数:0
复制
# 条形图比较
import matplotlib as mpl
import matplotlib.pyplot as plt
import seaborn as sns

plt.rcParams['font.sans-serif'] = ['SimHei'] # 用来正常显示中文标签

# 自定义标签
labels = ['a', 'b', 'c', 'd', 'e']

# 初始化布局
fig = plt.figure(figsize=(12,3))

# 条形图1
plt.subplot(1, 3, 1) 
sns.barplot(x=labels, y=[17,18,20,22,24], errorbar=None)

# 条形图2
plt.subplot(1, 3, 2) 
sns.barplot(x=labels, y=[20,18,21,20,20], errorbar=None)

# 条形图3
plt.subplot(1, 3, 3) 
sns.barplot(x=labels, y=[24,23,21,19,18], errorbar=None)


plt.show()

总结

以上通过matplotlib的pie快速绘制饼图,并通过修改参数或者辅以其他绘图知识自定义各种各样的饼图来适应相关使用场景。也提醒了在多个饼图间进行比较的困难,更建议使用条形图。

共勉~

参考资料

[1]

matplotlib.pyplot.pie: https://matplotlib.org/stable/api/_as_gen/matplotlib.pyplot.pie.html

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-08-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 HsuHeinrich 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 局部整体(三)利用python绘制饼图
    • 饼图( Pie Plot)简介
    • 快速绘制
    • 定制多样化的饼图
    • 总结
      • 参考资料
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档