首页 > 解决方案 > 如何将中值标签添加到我的 seaborn 箱线图中?

问题描述

我想在我的箱线图中添加中值标签,但无法在 Seaborn 中找到正确的代码。

我尝试了在这里这里找到的两种不同的解决方案,但都没有奏效。我的代码如下,使用第一个解决方案:

import seaborn as sns
sns.set()
sns.set(rc={'figure.figsize':(40,24)})
sns.set(font_scale=3)
sns.set_style("whitegrid")

ax = sns.boxplot(x="Year", y="Travel Time", data=Potrero_fall_PM_OB_clean, 
showfliers=False).set(xlabel='Year', ylabel='Travel Time (min)', title = 
"Fall PM OB Travel Time on Potrero Ave, Year over Year")

medians = Potrero_fall_PM_OB_clean.groupby(['Year'])['Travel 
Time'].median().values
median_labels = [str(np.round(s, 2)) for s in medians]

pos = range(len(medians))
for tick,label in zip(pos,ax.get_xticklabels()):
    ax.text(pos[tick], medians[tick] + 0.5, median_labels[tick], 
            horizontalalignment='center', size='x-small', color='w', 
            weight='semibold')

我希望得到一个带有中值标签的箱线图,但我明白了:


AttributeError                            Traceback (most recent call last)
<ipython-input-36-ce75d0ad015b> in <module>
     12 
     13 pos = range(len(medians))
---> 14 for tick,label in zip(pos,ax.get_xticklabels()):
     15     ax.text(pos[tick], medians[tick] + 0.5, median_labels[tick], 
     16             horizontalalignment='center', size='x-small', 
     color='w', weight='semibold')

 AttributeError: 'list' object has no attribute 'get_xticklabels'

我不明白为什么它没有 get_xticklabels 属性。我该如何解决这个问题并让中位数出现在我的箱线图中?

标签: pythonpandasmatplotlibseaborn

解决方案


推荐阅读