假设我有一个包含三个组的数据框' K',' L'和' M'在列'类型'像:
df = pd.DataFrame(data={'A': random.sample(xrange(60, 100), 10),
'B': random.sample(xrange(20, 40), 10),
'C': random.sample(xrange(2000, 3010), 10),
'type': list(3*'K')+list(3*'L')+list(4*'M')})
为了查看单个分组的箱图,我可以使用:
for i,el in enumerate(list(df.columns.values)[:-1]):
a = df.boxplot(el, by ='type')
我现在想将这些单个图组合成一个图中的子图。
使用df.boxplot(by='type')
创建此类子图。但是,由于列A',' B'和' C'这些子图很难阅读,即信息丢失,尤其是印刷形式。
每个子图如何具有单独的y轴?
答案 0 :(得分:1)
使用matplotlib
的可能解决方案是创建图形和子图,然后使用参数df.boxplot()
ax=
例如:
import matplotlib.pyplot as plt
fig, axes = plt.subplots(2,2) # create figure and axes
df = pd.DataFrame(data={'A': random.sample(xrange(60, 100), 10),
'B': random.sample(xrange(20, 40), 10),
'C': random.sample(xrange(2000, 3010), 10),
'type': list(3*'K')+list(3*'L')+list(4*'M')})
for i,el in enumerate(list(df.columns.values)[:-1]):
a = df.boxplot(el, by="type", ax=axes.flatten()[i])
fig.delaxes(axes[1,1]) # remove empty subplot
plt.tight_layout()
plt.show()