gpt4 book ai didi

python - 在 Python 中创建和注释分组条形图

转载 作者:行者123 更新时间:2023-12-03 08:18:30 26 4
gpt4 key购买 nike

我正在使用以下 DataFrame,

我想创建一个类似于下图所示的分组条形图 enter image description here

具有索引值 'A','B','C','D','E' X 轴及其各自的系列(提前、逾期、准时、逾期)。我还想注释每个条形图(在每个条形图上写下数据值)

要复制我的 DataFrame,请使用以下代码段:

df = pd.DataFrame.from_dict({'Early': {'A': 824, 'B': 701, 'C': 1050, 'D': 764, 'E': 993},
'Long Overdue': {'A': 238, 'B': 270, 'C': 489, 'D': 549, 'E': 471},
'On Time': {'A': 1021, 'B': 1025, 'C': 120, 'D': 71, 'E': 57},
'Overdue': {'A': 493, 'B': 580, 'C': 917, 'D': 1192, 'E': 1055}}
)

最佳答案

还有其他方法可以将数据格式转换为垂直格式,但我们将为该垂直数据绘制条形图。然后获取该条的 x 轴位置和高度,并对其进行注释。在我的代码中,我将文本放置在高度的一半处。

df_long = df.unstack().to_frame(name='value')
df_long = df_long.swaplevel()
df_long.reset_index(inplace=True)
df_long.columns = ['group', 'status', 'value']

import matplotlib.pyplot as plt

fig, ax = plt.subplots(figsize=(12, 8))

g = sns.barplot(data=df_long, x='group', y='value', hue='status', ax=ax)

for bar in g.patches:
height = bar.get_height()
ax.text(bar.get_x() + bar.get_width() / 2., 0.5 * height, int(height),
ha='center', va='center', color='white')

plt.show()

enter image description here

关于python - 在 Python 中创建和注释分组条形图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68608526/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com