2016-07-29 12 views
12

Wie kann ich jeden Boxplot in einem Seaborn-Plot mit dem Medianwert beschriften?Etikettierung Boxplot in Seaborn mit Mittelwert

z.

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

Wie beschrifte ich jedes Boxplot mit dem Median oder Durchschnittswert?

Antwort

10

Kann ich nur sagen, dass ich es liebe, wenn Leute Beispieldatensätze einschließen. Ein gesundes +1 an dich!

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

Dank für eine Antwort Greant bernie! – user308827

+1

Prost, Kumpel. Happy Coding für Sie! – bernie

+1

Beachten Sie, dass der Effekt von 0,5 nach Median [Tick] empfindlich auf die Skalierung der Daten reagiert. Für meinen kleinen Maßstab hat es den weißen Text in den weißen Hintergrund gedrängt und ich brauchte eine Weile, um herauszufinden, warum es nicht gezeigt wurde. Skalieren Sie 0,5 nach Bedarf. –

Verwandte Themen