Matplotlib饼状图标签后置显示方法
Matplotlib饼状图标签后置显示方法
在使用Matplotlib绘制饼状图时,你可能希望将标签放置在饼状图的后侧,以便于阅读和理解数据。
以下代码示例演示了如何使用 plt.legend() 函数实现这一目标:
import matplotlib.pyplot as plt
# 创建示例数据
labels = ['A', 'B', 'C', 'D', 'E']
sizes = [10, 0, 30, 40, 0]
colors = ['#ff9999', '#66b3ff', '#99ff99', '#ffcc99', '#c2c2f0']
# 过滤比例为0的标签
filtered_labels = [label for label, size in zip(labels, sizes) if size != 0]
filtered_sizes = [size for size in sizes if size != 0]
filtered_colors = [color for size, color in zip(sizes, colors) if size != 0]
# 绘制饼状图
pie = plt.pie(filtered_sizes, labels=filtered_labels, colors=filtered_colors, autopct='%1.1f%%', startangle=90)
# 添加图例
plt.legend(pie[0], filtered_labels, loc='center right', bbox_to_anchor=(1.2, 0.5))
# 显示图形
plt.show()
代码解释:
- 数据准备: 首先,我们创建了示例数据
labels、sizes和colors,分别表示饼状图的标签、大小和颜色。 - 数据过滤: 使用列表推导式过滤掉比例为0的数据,避免在图例中显示空白标签。
- 绘制饼状图: 使用
plt.pie()函数绘制饼状图,并使用filtered_labels、filtered_sizes和filtered_colors作为参数。 - 添加图例: 使用
plt.legend()函数添加图例,并将pie[0](饼状图的楔形部分) 传递给它,并使用filtered_labels设置标签。loc='center right'将图例放置在右侧中间。bbox_to_anchor=(1.2, 0.5)调整图例的位置,使其不与图表重叠。
- 显示图形: 最后,使用
plt.show()函数显示绘制的图形。
你可以根据实际需求修改示例代码中的数据、标签、颜色等参数,以创建符合你需求的饼状图。
原文地址: https://www.cveoy.top/t/topic/cr4B 著作权归作者所有。请勿转载和采集!