matplotlib—plt.pie绘制饼状图及参数详解

本文详细介绍了matplotlib库中创建饼图的方法,包括参数解释和实例演示。通过设置explode参数可以突出显示饼图的某一部分,autopct用于显示百分比,pctdistance和labeldistance控制百分比和标签的位置。示例中展示了如何根据数据制作酒精饮料销量占比的饼图,并通过调整参数优化视觉效果。
摘要由CSDN通过智能技术生成

文章目录


官网链接

import matplotlib.pyplot as plt
plt.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)

常用参数:

  1. x即每个扇形的占比的序列或数组
  2. explode如果不是None,则是一个len(x)长度的数组,指定每一块的突出程度;突出显示,设置每一块分割出来的间隙大小
  3. labels为每个扇形提供标签的字符串序列
  4. colors为每个扇形提供颜色的字符串序列
  5. autopct如果它是一个格式字符串,标签将是fmt % pct。如果它是一个函数,它将被调用。
  6. shadow阴影
  7. startangle从x轴逆时针旋转,饼的旋转角度
  8. pctdistance, default: 0.6每个饼片的中心与由autopct生成的文本的开头之间距离与半径的比率,大于1的话会显示在圆外
  9. labeldistance, default: 1.1饼状图标签绘制时的径向距离(我认为这个也与8类似是个比率)。如果设置为None,则不绘制标签,而是存储在图例()中使用。
import matplotlib.pyplot as plt

labels = 'Frogs', 'Hogs', 'Dogs', 'Logs'  # 定义标签
sizes = [15, 30, 45, 10]  # 每一块的比例
colors = ['yellowgreen', 'gold', 'lightskyblue', 'lightcoral']  # 每一块的颜色
explode = (0, 0.1, 0, 0)  # 突出显示,这里仅仅突出显示第二块(即'Hogs')

plt.pie(sizes, explode=explode, labels=labels, colors=colors, autopct='%1.1f%%', shadow=True, startangle=90)
plt.axis('equal')  # 显示为圆(避免比例压缩为椭圆)
plt.show()

在这里插入图片描述


selected = links.loc[links.Types == '酒精饮料']

在这里插入图片描述

alcohol = selected['id'].sum()
selected['count'] = selected.apply(lambda x : x['id']/alcohol,axis=1)
selected.rename(columns={'count':'percent'},inplace=True)

data = selected['percent']
labels = selected['Goods']
plt.figure(figsize = (10,10))  # 设置画布大小 
explode = (0.02,0.03,0.04,0.05,0.06,0.07,0.08,0.08,0.3,0.1,0.3)  # 设置每一块分割出的间隙大小
plt.pie(data,explode = explode,labels = labels,autopct = '%1.2f%%',
        pctdistance = 1.1,labeldistance = 1.2)
plt.title("酒精饮料内部各商品的销量占比")  # 设置标题
plt.axis('equal')

在这里插入图片描述
如果没有explode参数,每一块都没有分割出来

alcohol = selected['id'].sum()
selected['count'] = selected.apply(lambda x : x['id']/alcohol,axis=1)
selected.rename(columns={'count':'percent'},inplace=True)

data = selected['percent']
labels = selected['Goods']
plt.figure(figsize = (10,10))  # 设置画布大小 
# explode = (0.02,0.03,0.04,0.05,0.06,0.07,0.08,0.08,0.3,0.1,0.3)  # 设置每一块分割出的间隙大小
plt.pie(data,labels = labels,autopct = '%1.2f%%',
        pctdistance = 1.1,labeldistance = 1.2)
plt.title("酒精饮料内部各商品的销量占比")  # 设置标题
plt.axis('equal')

在这里插入图片描述
如果没有pctdistance 参数,则格式字符串会默认显示在圆内

alcohol = selected['id'].sum()
selected['count'] = selected.apply(lambda x : x['id']/alcohol,axis=1)
selected.rename(columns={'count':'percent'},inplace=True)

data = selected['percent']
labels = selected['Goods']
plt.figure(figsize = (10,10))  # 设置画布大小 
# explode = (0.02,0.03,0.04,0.05,0.06,0.07,0.08,0.08,0.3,0.1,0.3)  # 设置每一块分割出的间隙大小
plt.pie(data,labels = labels,autopct = '%1.2f%%',
        labeldistance = 1.2)
plt.title("酒精饮料内部各商品的销量占比")  # 设置标题
plt.axis('equal')

在这里插入图片描述
对于很好的类别,格式字符串会重叠,所以这个参数也比较重要。


如果对您有帮助,麻烦点赞关注,这真的对我很重要!!!如果需要互关,请评论留言!
在这里插入图片描述


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值