2016-03-30 11 views
6

sto chiamando seaborn.boxplot o meno come segue:assegnare un colore ad una specifica casella di seaborn.boxplot

seaborn.boxplot(ax=ax1, 
        x="centrality", y="score", hue="model", data=data], 
        palette=seaborn.color_palette("husl", len(models) +1), 
        showfliers=False, 
        hue_order=order, 
        linewidth=1.5) 

E 'possibile effettuare una scatola spiccano dandogli un colore specifico, mentre la colorazione tutti gli altri con la tavolozza dei colori data?

enter image description here

+1

Potete fornire un esempio minimo, completo e verificabile? – Chiel

+0

@Chiel i documenti seaborn.boxplot forniscono un esempio minimo per giocare con: http://web.stanford.edu/~mwaskom/software/seaborn/generated/seaborn.boxplot.html – clstaudt

risposta

15

I box realizzati utilizzando sns.boxplot sono in realtà solo matplotlib.patches.PathPatch oggetti. Questi sono memorizzati in ax.artists come elenco.

Quindi, possiamo selezionare una casella in particolare indicizzando ax.artists. Quindi, è possibile impostare facecolor, edgecolor e linewidth, tra molte altre proprietà.

Per esempio (sulla base degli uno degli esempi here):

import seaborn as sns 
import matplotlib.pyplot as plt 

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

# Select which box you want to change  
mybox = ax.artists[2] 

# Change the appearance of that box 
mybox.set_facecolor('red') 
mybox.set_edgecolor('black') 
mybox.set_linewidth(3) 

plt.show() 

enter image description here

Problemi correlati