使用字符串中 pandas 系列的标量作为绘图标签

Use scalar from pandas series in string for plot label

抱歉,如果这个问题是重复的,我还认为找到答案很容易...所以我的问题实际上更普遍地是关于将系列对象中的值插入到字符串中,但它发生在直方图的上下文,其中添加了一条中位数线,我希望中线的图例显示实际中位数。这是玩具数据

 df = pd.DataFrame({'age': ['1', '2', '3', '4', '5', '6', '7',
                          '8', '9', '10', '11', '12', '13', '14',
                          '15', '16', '17', '18', '19', '20', '21']}) 

并剥离代码以获取图形

color = '#003366'
color2 = '#fc4f30'

ages = df['age']
bins = np.arange(5, 100, 2).tolist()
median_age = df['age'].median()

plt.hist(ages, bins=bins, color=color, edgecolor='black', alpha= 0.9)
plt.axvline(median_age, color=color2, label='Age Median', linewidth=2)

plt.legend()
plt.show()

我想将段落 label='Age Median' 修改为 label='Age Median = df['age'].median()' 但我不知道如何将标量插入字符串。有什么提示吗?

好的,一种方法是将 {:.2f} 插入字符串,然后在字符串后添加 .format(median_age)

plt.axvline(median_age, color=color2, label="Age Median = {:.2f}".format(median_age), linewidth=2)

注意:{:.2f}是数字的格式,并给出两位小数。

参考:https://matthew-brett.github.io/teaching/string_formatting.html