如何向 seaborn bar_label 添加字符串?

How do I add a string to seaborn bar_label?

我需要在 seaborn 条形图上方显示数据。这些数字代表美元,我想将值 25200 显示为 .2k

这是我目前用来显示下图的代码。

import seaborn as sns
import matplotlib.pyplot as plt

i = sns.barplot(ax = axes[1,0], x=lr_2021['decile'], y=np.round((lr_2021['NonCAT Severity']/1000),2), color = 'purple')
i.bar_label(axes[1,0].containers[0])

其中显示:

我尝试将以下内容添加到 bar_label 行:

i.bar_label(axes[1,0].containers["$",0, "K"])

然而,那个错误已经出来了。这可能吗?

如果需要添加$前缀和K后缀,fmt参数最简单:

i.bar_label(axes[1,0].containers[0], fmt='$%gK')

但在这种情况下,您还需要将这些值除以 1000。这对于 fmt 来说太复杂了,因此请通过 labels参数:

bars = axes[1,0].containers[0]
i.bar_label(bars, labels=[f'${value/1000:.1f}K' for value in bars.datavalues])