【发布时间】:2016-05-07 11:27:40
【问题描述】:
我试图找到一种在同一轴上绘制两个distplots (from seaborn) 的好方法。由于直方图条相互覆盖,因此它没有我想要的那么漂亮。而且我不想仅仅因为它们看起来不漂亮而使用countplot 或barplot。当然,如果没有其他方法我会以这种方式进行,但distplot 看起来非常好。但是,如前所述,这些条形现在相互覆盖(见图)。
因此,有什么方法可以将两个 distplot 频率条放在一个 bin 上,这样它们就不会重叠?或者将计数放在一起?基本上我想在seaborn中做到这一点:
欢迎任何清理它的想法。谢谢。
MWE:
sns.set_context("paper",font_scale=2)
sns.set_style("white")
rc('text', usetex=False)
fig, ax = plt.subplots(figsize=(7,7),sharey=True)
sns.despine(left=True)
mats=dict()
mats[0]=[1,1,1,1,1,2,3,3,2,3,3,3,3,3]
mats[1]=[3,3,3,3,3,4,4,4,5,6,1,1,2,3,4,5,5,5]
N=max(max(set(mats[0])),max(set(mats[1])))
binsize = np.arange(0,N+1,1)
B=['Thing1','Thing2']
for i in range(len(B)):
ax = sns.distplot(mats[i],
kde=False,
label=B[i],
bins=binsize)
ax.set_xlabel('My label')
ax.get_yaxis().set_visible(False)
ax.legend()
plt.show()
【问题讨论】:
-
你是在问如何画stacked histogram?
-
不,我问的是如何在您的链接中进行右下角或左上角。我在问如何在 seaborn 中做到这一点。
-
Seaborn 使用 matplotlib。没有“海生”。
-
非常正确,但是 seaborn 确实有自己的功能,就像上面的那个。我宁愿在回到 matplotlib 之前完成这项工作。
-
另见this
标签: python matplotlib seaborn