2017-05-05 49 views
3

我尝试在swarmplot上面使用seaborn的pointPlot绘制组明智的中值。即使我把pointPlot称为第二个,点图也会在swarmplot后面结束。我怎样才能改变'图层顺序',使点图在swarmplot前面?seaborn pointplot above 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

回答

4

使用zorder属性来设置适当drawing order

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