2017-05-05 4 views
3

Ich versuche, Gruppen weise Medianwerte mit Seaborns PointPlot auf einem Swarmplot zu plotten. Auch wenn ich pointPlot Sekunde nenne, landet der Punkt Plot hinter dem Swarmplot. Wie kann ich die 'Layer-Reihenfolge' so ändern, dass das Punktdiagramm vor dem Swarmplot liegt?Seaborn Pointplot über Swarmplot

datDf=pd.DataFrame({'values':np.random.randint(0,100,100)}) 
datDf['group']=np.random.randint(0,5,100) 
sns.swarmplot(data=datDf,x='group',y='values') 
sns.pointplot(data=datDf,x='group',y='values',estimator=np.median,join=False) 

enter image description here

Antwort

4

Verwenden zorder Eigenschaft richtige drawing order einzustellen.

import numpy as np 
import pandas as pd 
import seaborn as sns 
import matplotlib.pylab as plt 

datDf=pd.DataFrame({'values':np.random.randint(0,100,100)}) 
datDf['group']=np.random.randint(0,5,100) 
sns.swarmplot(data=datDf,x='group',y='values',zorder=1) 
sns.pointplot(data=datDf,x='group',y='values',estimator=np.median,join=False, zorder=100) 
plt.show() 

enter image description here