📜  如何在Python中的分组条形图中注释条形?(1)

📅  最后修改于: 2023-12-03 15:08:57.704000             🧑  作者: Mango

如何在Python中的分组条形图中注释条形?

在Python中,可以使用matplotlib库来绘制分组条形图,并用注释来说明每个条形的具体数值或含义。

下面是一个使用matplotlib绘制分组条形图并注释条形的示例代码:

import matplotlib.pyplot as plt

data_a = [22, 28, 18, 27, 25]
data_b = [20, 23, 19, 22, 21]

x_ticks = ['A', 'B', 'C', 'D', 'E']
x_pos = [i for i, _ in enumerate(x_ticks)]
bar_width = 0.35

fig, ax = plt.subplots()
rects1 = ax.bar(x_pos, data_a, bar_width, label='Data A')
rects2 = ax.bar([x + bar_width for x in x_pos], data_b, bar_width, label='Data B')

ax.set_xticks([x + bar_width / 2 for x in x_pos])
ax.set_xticklabels(x_ticks)
ax.legend()

for rect in rects1 + rects2:
    height = rect.get_height()
    ax.annotate(f'{height}', xy=(rect.get_x() + rect.get_width() / 2, height), xytext=(0, 3),
                textcoords="offset points", ha='center', va='bottom')

plt.show()

在上述代码中,我们首先定义了两个数据集data_a和data_b,以及x轴上每个条形的标签x_ticks和对应位置x_pos。我们先通过enumerate()函数获取每个标签对应的位置,然后用bar()函数创建条形。

接着,我们通过set_xticks()和set_xticklabels()函数设置x轴刻度和标签,以及使用legend()函数设置图例。最后,我们使用annotate()函数在每个条形上方添加注释,其中xy指注释的位置,xytext指注释文本的位置以及偏移量,ha和va指注释水平和垂直对齐方式。

运行上面的代码,可以得到如下所示的分组条形图,并在每个条形上注释了相应的数值:

plot

以上就是如何在Python中的分组条形图中注释条形的方法。