我试图创建两个在相同轴上重叠的distplots,但它们似乎是偏移的。我该如何调整它以使它们的重叠完全一致?有关我遇到的问题,请参阅下面的图片链接。
plt.figure(figsize=(10,8))
ax1 = sns.distplot(loans['fico'][loans['credit.policy']==1], bins= 10, kde=False, hist_kws=dict(edgecolor='k', lw=1))
ax2 = sns.distplot(loans['fico'][loans['credit.policy']==0], bins= 10, color='Red', kde=False, hist_kws=dict(edgecolor='k', lw=1))
ax1.set_xlim([600, 850])
ax2.set_xlim([600, 850])
答案 0 :(得分:3)
这些情节并没有排好,因为Seaborn(好吧,幕后的Matplotlib)正在制定最好的方法,为你传递给它的每组数据提供十个箱子。但这两套可能没有相同的范围。
您可以提供一个序列作为bin参数,它定义了bin的边缘。假设您有numpy可用,您可以使用其linspace
函数轻松地从数据中的最小值和最大值创建此序列。
plt.figure(figsize(10,8))
bins = np.linspace(min(loans['fico']), max(loans['fico']), num=11)
ax1 = sns.distplot(loans['fico'][loans['credit.policy']==1], bins=bins,
kde=False, hist_kws=dict(edgecolor='k', lw=1))
ax2 = sns.distplot(loans['fico'][loans['credit.policy']==0], bins=bins,
color='Red', kde=False, hist_kws=dict(edgecolor='k', lw=1))
然后你不应该设置x限制。