2016-07-29 19 views
12

にラベル付けするにはどうすればよいでしょうか?中央値を持つseabornのboxplotを

など。

import seaborn as sns 
sns.set_style("whitegrid") 
tips = sns.load_dataset("tips") 
ax = sns.boxplot(x="day", y="total_bill", data=tips) 

どのように各ボックスプロットに中央値または平均値を付けますか?

答えて

10

人がサンプルデータセットを含むときに私が好きだと言うことはできますか?あなたに健康な+1! greant回答バーニーのため

import seaborn as sns, numpy as np 

sns.set_style("whitegrid") 
tips = sns.load_dataset("tips") 
ax = sns.boxplot(x="day", y="total_bill", data=tips) 

medians = tips.groupby(['day'])['total_bill'].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') 

enter image description here

+0

感謝! – user308827

+1

乾杯、仲間。あなたにハッピーコーディング! – bernie

+1

メジアン[tick]後の0.5の効果は、自分のデータのスケールに敏感であることに注意してください。私の小規模では、白いテキストを白い背景に押し上げて、それがなぜ表示されないのかを理解するのに時間がかかりました。必要に応じて0.5を目盛りにします。 –

関連する問題