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()

代码解释:

  1. 数据准备: 首先,我们创建了示例数据 labelssizescolors,分别表示饼状图的标签、大小和颜色。
  2. 数据过滤: 使用列表推导式过滤掉比例为0的数据,避免在图例中显示空白标签。
  3. 绘制饼状图: 使用 plt.pie() 函数绘制饼状图,并使用 filtered_labelsfiltered_sizesfiltered_colors 作为参数。
  4. 添加图例: 使用 plt.legend() 函数添加图例,并将 pie[0] (饼状图的楔形部分) 传递给它,并使用 filtered_labels 设置标签。
    • loc='center right' 将图例放置在右侧中间。
    • bbox_to_anchor=(1.2, 0.5) 调整图例的位置,使其不与图表重叠。
  5. 显示图形: 最后,使用 plt.show() 函数显示绘制的图形。

你可以根据实际需求修改示例代码中的数据、标签、颜色等参数,以创建符合你需求的饼状图。

Matplotlib饼状图标签后置显示方法

原文地址: https://www.cveoy.top/t/topic/cr4B 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录