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

Python绘制饼图时标题重叠,如何实现标题清晰无重叠?

解决饼图标题重叠及自定义图例方案

一、解决标题/标签重叠的常用方法

  • 调整元素位置:如果是主标题和图例重叠,可通过plt.title()的y参数上移标题,比如plt.title("饼图标题", y=1.05);如果是图例内部标签挤在一起,用plt.legend()的bbox_to_anchor参数把图例放到图表外侧,例如plt.legend(bbox_to_anchor=(1.2, 1)),也可以搭配loc参数指定基准位置。
  • 缩小字体尺寸:给标题或图例添加fontsize参数减小字号,比如plt.title("标题", fontsize=10)、plt.legend(fontsize=8),避免文本占空间过大。
  • 优化文本内容:对过长的标签文本进行换行(插入\n)或者简化表述,从根源减少文本长度。

二、带百分比的颜色对应列表(完全可行)

这是解决标签重叠的高效替代方案,能让数据展示更清晰,两种实现思路供参考:

  1. 自定义带百分比的图例文本
    先计算各部分占比,将类别与百分比组合成新的图例标签,同时保留颜色映射:
import matplotlib.pyplot as plt

labels = ["类别A", "类别B", "类别C", "类别D"]
sizes = [15, 30, 45, 10]
colors = ["#ff9999", "#66b3ff", "#99ff99", "#ffcc99"]

# 计算百分比并组合标签
percentages = [f"{size/sum(sizes)*100:.1f}%" for size in sizes]
legend_texts = [f"{label}: {pct}" for label, pct in zip(labels, percentages)]

plt.pie(sizes, colors=colors, labels=None)  # 隐藏饼图上的原生标签
plt.legend(legend_texts, loc="upper right", bbox_to_anchor=(1.3, 1))
plt.title("各类别占比分布")
plt.show()
  1. 饼图显示百分比+侧边保留类别图例
    让饼图直接展示百分比,侧边只放对应颜色的类别标签,天然一一对应:
plt.pie(sizes, colors=colors, autopct="%.1f%%", labels=None)
plt.legend(labels, loc="upper right", bbox_to_anchor=(1.3, 1))
plt.title("各类别占比分布")
plt.show()

如果用seaborn等其他绘图库,核心逻辑一致——要么调整元素布局、字体,要么通过分离标签与饼图的方式解决重叠,自定义带百分比的颜色列表是非常实用的优化方向。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 15:00:45