我有一个起点(prod1)和终点(prod2),它们可以来自[A,B,C,D]。
我想看到4行4个箱图,其中第一行是“从A”到箱子图到B,再到C和D。
由于没有A到A,B到B,C到C或D到D,所以箱图最终为3个图。
import pandas as pd
import numpy as np
import seaborn as sns
%matplotlib inline
cross=np.random.randn(1000)
prod1 = ['A','B','C','D'] * 250
prod2 = ['A'] * 250 + ['B'] * 250 + ['C'] * 250 + ['D'] * 250
df_cross = pd.DataFrame(
{'prod1': prod1,
'prod2': prod2,
'cross': cross
})
df_cross=df_cross[df_cross['prod1']!=df_cross['prod2']] ##cannot sell to another
fig, (ax1, ax2, ax3, ax4) = plt.subplots(nrows=4, sharey=True)
fig.set_size_inches(12, 16)
sns.boxplot(data=df_cross[df_cross['prod1']=='A'], x='prod2', y='cross', ax=ax1)
sns.boxplot(data=df_cross[df_cross['prod1']=='B'], x='prod2', y='cross', ax=ax2)
sns.boxplot(data=df_cross[df_cross['prod1']=='C'], x='prod2', y='cross', ax=ax3)
sns.boxplot(data=df_cross[df_cross['prod1']=='D'], x='prod2', y='cross', ax=ax4)
如您所见,x轴随每行而变化。如何确保x轴具有A,B,C,D?