如何在 Python 中的组合条形图中添加注释?


简介

随着数据可视化成为每个数据分析项目不可或缺的一部分,条形图成为表示分类数据的绝佳工具。特别是组合条形图,当我们想要并排比较多个组时非常有用。

语法和用例

可以在条形图中添加注释,以提供有关所呈现数据的其他信息或说明。matplotlib 的注释函数可用于将这些注释添加到每个条形。该函数采用以下参数:-

  • text − 要在注释中显示的文本。

  • xy − 要注释的点 (x, y)。

  • xytext − 确定文本位置。

  • ha − 文本的水平对齐方式(例如“center”、“left”、“right”)。

  • va − 文本的垂直对齐方式(例如“center”、“top”、“bottom”)。

使用注释可以提高组合条形图的可读性和可解释性。以下两种情况下,在组合条形图中为条形添加注释可能会有所帮助:-

比较绝对值和相对值

在组合条形图中,比较高度不同的条形的绝对值可能很困难。如果用相应的数值为条形添加注释,读者可能会更容易比较每个组的绝对值。通过用相对值注释条形,还可以使读者更清楚地了解每个类别中值的分布。

突出显示显著差异

组合条形图可用于比较多个组的均值或比例。将 p 值或置信区间添加到条形可能有助于读者识别组之间的显著差异。此外,您可以通过在条形上方放置星号或其他符号来直观地突出显示具有统计学意义的差异的条形。这可以帮助读者理解统计分析的结果并从数据中得出推论。

代码和解释

算法

  • 导入必要的库:matplotlib 和 numpy

  • 创建要绘制的数据集

  • 使用 matplotlib 的 subplots 函数定义图形和轴对象

  • 使用 bar 函数绘制组合条形图

  • 循环遍历每个条形,并使用 matplotlib 的 annotate 函数添加文本注释

import matplotlib.pyplot as plt
import numpy as np

# create sample dataset
data = np.array([[3, 4, 5], [2, 3, 4]])

# define labels and groups
labels = ['Group 1', 'Group 2']
groups = ['A', 'B', 'C']

# define figure and axis objects
fig, ax = plt.subplots()

# plot the grouped bar chart
width = 0.35
x = np.arange(len(groups))
ax.bar(x - width/2, data[0], width, label=labels[0])
ax.bar(x + width/2, data[1], width, label=labels[1])

# add text annotations to each bar
for i, j in enumerate(data):
   for x_val, y_val in zip(x, j):
      ax.annotate(str(y_val), xy=(x_val+i*width-width/2, y_val), ha='center', va='bottom')

# add labels and legend
ax.set_xticks(x)
ax.set_xticklabels(groups)
ax.set_xlabel('Groups')
ax.set_ylabel('Count')
ax.legend()
plt.show()
  • 首先,导入完成任务所需的必要库,特别是众所周知的 numpy 和 matplotlib。

  • 通过应用具有两行三列的 numpy 数组来生成一个示例数据集。定义组和条形的标签是为了正确识别绘图。

  • 为了创建绘图,通过 matplotlib 的 subplots 函数生成图形和轴对象。然后使用 bar 函数绘制组合条形图,其中每个条形的宽度指定为 0.35。然后使用相应的 data 参数选择每个组的条形,并使用 labels 参数进行选择。

  • 在嵌套的 for 循环内使用 annotate 函数为每个条形添加文本注释。该函数接受每个条形的 x 和 y 坐标以及条形的高度作为文本注释。

  • 使用 matplotlib 的 set_xticks、set_xticklabels、set_xlabel、set_ylabel 和 legend 函数对绘图进行标记,这些函数允许对 x 轴和 y 轴、绘图标题进行正确的标记,并在绘图上包含图例。

结论

在 Python 中的组合条形图中添加注释可以提供有关所呈现数据的其他信息或说明。使用 matplotlib 的注释函数,我们可以按照本文中概述的分步算法轻松地为每个条形添加文本注释。

更新于: 2023 年 3 月 24 日

1K+ 次浏览

启动您的 职业生涯

通过完成课程获得认证

开始学习
广告