Python画饼状图解决字体重叠问题

使用Python的matplotlib库绘制饼状图非常方便,只需要提供数据,就可以把图画出来

import matplotlib.pyplot as plt

data = [89,95,60]
labels = ['甲','乙','丙']
plt.pie(data, autopct='%.2f%%',labels=labels)

plt.legend()
plt.show()

在这里插入图片描述

但是在我们使用过程中常常碰到因数据过小而导致的字体重叠。

在这里插入图片描述

这时我们可以添加pctdistance参数,该参数可以认为是图中百分比距离圆心的距离。

import matplotlib.pyplot as plt

data = [89,95,60,2,4]
labels = ['甲','乙','丙','丁','戊']
plt.pie(data, autopct='%.2f%%',labels=labels,pctdistance=0.9)

plt.legend()
plt.show()

这样问题得到了有效解决。

在这里插入图片描述

实际上我们再添加一个参数explode,该参数表示(每一块)离开中心距离。

plt.pie(data, autopct='%.2f%%',labels=labels,pctdistance=0.9,explode=(0,0,0,0.4,0.2))

绘制的图如下,相当于把较小的部分抠了出来。

在这里插入图片描述

如果觉得文章还不错的话,就请留下一个大大的赞吧!!十分感谢

  • 40
    点赞
  • 48
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
要使用Python绘制饼状图,我们可以使用Matplotlib库的Pyplot子库。首先,我们需要导入相关的库,包括Matplotlib.pyplot和NumPy。然后,我们可以使用NumPy创建一个一维数组来存储各个饼块的尺寸。接下来,使用plt.pie()函数来绘制饼状图,默认是从x轴正方向逆时针开始绘图。最后,使用plt.show()函数来显示饼状图。 下面是一个简单的示例代码: ```python import matplotlib.pyplot as plt import numpy as np x = np.array([10, 20, 30, 40]) # 用一维数组存入各个饼块的尺寸 plt.pie(x) # 绘制饼状图,默认是从x轴正方向逆时针开始绘图 plt.show() # 显示饼状图 ``` 如果你想给饼状图的各饼块加上标签,并给饼状图添加一个标题来统计各操作系统使用人数的占比,你可以使用以下代码: ```python import matplotlib.pyplot as plt import numpy as np plt.rcParams['font.sans-serif'] = ['Microsoft YaHei'] # 指定字体为雅黑,解决文字乱码问题 x = np.array([30, 24, 16, 30]) plt.pie(x, labels=['Windows', 'Linux', 'ios', 'Android']) # 设置饼图标签,以列表形式传入 plt.title("各操作系统使用占比") plt.show() ``` 这里我们使用了plt.rcParams['font.sans-serif']来指定字体为雅黑,以解决中文文字乱码问题。labels参数用于设置饼图的标签,以列表形式传入。最后,使用plt.title()来设置饼状图的标题。运行这段代码,就可以得到一个带有标签和标题的饼状图。 希望这个解答对你有帮助!<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [python 数据可视化———绘制饼状图(bar)](https://blog.csdn.net/a1227406795/article/details/124670436)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

纸照片

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值