You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Matplotlib增大饼图尺寸:radius参数失效问题咨询

解决Matplotlib饼图设置radius参数后尺寸无变化的问题

嘿,我之前也踩过这个坑!你设置radius没效果,核心原因是没搞懂这个参数的真正作用——它是相对于当前子图坐标系的缩放比例,而不是直接改变整个图表的显示尺寸。如果你的子图/画布本身就很小,就算把radius拉得再大,饼图也只是在那个狭小的区域里放大,整体看起来还是没变化。

下面给你几个切实可行的解决思路:

1. 先调整画布整体尺寸(最常用)

先通过plt.figure()的figsize参数设置画布的宽和高(单位是英寸),再配合radius参数,就能直观看到饼图变大了:

import matplotlib.pyplot as plt

# 先设置画布大小,这里设为10x10英寸,你可以根据需求调整
plt.figure(figsize=(10, 10))
labels = ['类别A', '类别B', '类别C', '类别D']
sizes = [15, 30, 45, 10]
# 再设置radius,这里设为1.2,比默认的1大一些
plt.pie(sizes, labels=labels, radius=1.2)
plt.title('调整画布尺寸后的饼图')
plt.show()

2. 使用子图对象时调整子图尺寸

如果你习惯用subplots()创建子图,直接在创建时指定figsize即可:

import matplotlib.pyplot as plt

# 创建子图时就设置画布大小
fig, ax = plt.subplots(figsize=(8, 8))
sizes = [20, 30, 50]
# 这里把radius设为1.5,子图空间足够的话,饼图会明显放大
ax.pie(sizes, radius=1.5)
ax.set_title('子图模式下的大尺寸饼图')
plt.show()

3. 额外:避免图例/标题截断

如果你的饼图加了图例,放大后可能会出现内容被截断的情况,可以用subplots_adjust或者调整图例的位置来解决:

plt.figure(figsize=(10,10))
plt.pie(sizes, labels=labels, radius=1.3)
# 把图例放到画布外侧
plt.legend(bbox_to_anchor=(1.2, 0.9))
# 调整右侧留白,给图例留出空间
plt.subplots_adjust(right=0.7)
plt.show()

总结一下:radius是“内部缩放”,而你需要先给饼图足够的“外部空间”(也就是画布/子图尺寸),两者配合才能让饼图真正变大~

内容的提问来源于stack exchange,提问作者avoliva

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 08:08:00