Python 绘制两个直方图。为什么可以';一个没有kde,而另一个没有?

Python 绘制两个直方图。为什么可以';一个没有kde,而另一个没有?,python,data-visualization,seaborn,histogram,Python,Data Visualization,Seaborn,Histogram,所以我正在学习Kaggle数据可视化微观课程,我学到了绘制直方图的课程。 因此,练习要求绘制两个直方图,我这样做了,但如果我在其中一个图上添加kde=False,则只有该图可见,而另一个图不显示: `sns.distplot(a = cancer_b_data['Area (mean)'], kde = False) sns.distplot(a = cancer_m_data['Area (mean)']) ` 我不知道我听起来有多

所以我正在学习Kaggle数据可视化微观课程,我学到了绘制直方图的课程。 因此,练习要求绘制两个直方图,我这样做了,但如果我在其中一个图上添加kde=False,则只有该图可见,而另一个图不显示:

           `sns.distplot(a = cancer_b_data['Area (mean)'], kde = False) 
            sns.distplot(a = cancer_m_data['Area (mean)'])  `     

我不知道我听起来有多愚蠢,但任何澄清都会有所帮助。谢谢

使用默认值
kde=True
对kde进行规范化,使曲线下的面积为1。为了在同一个图中结合在一起,直方图也将标准化,以便所有条的完整面积总和为一

使用
kde=False
,默认直方图将显示频率(每个箱子的计数),这些数字要大得多。如果使用相同的轴在同一个绘图中同时显示,则归一化直方图不会消失,而是非常小。使用缩放工具,您可以验证它是否仍然存在。要查看大小相同的二者,可以使用
sns.distplot(…,kde=False,norm\u hist=True)

您将注意到,这两个柱状图不使用相同的bin边界。这些边界是使用样本数量以及各样本集的最小值和最大值计算的

要真正比较两个柱状图,可以设置显式存储单元,以便两者使用相同的存储单元边界

以下代码和图表比较了3种不同的直方图比较方法:

导入matplotlib.pyplot作为plt
将numpy作为np导入
导入seaborn作为sns
x1=np.random.randn(100).cumsum()
x2=np.random.randn(100).cumsum()
图(ax1,ax2,ax3)=plt.子批次(ncols=3,figsize=(15,4))
sns.distplot(a=x1,kde=False,ax=ax1)
sns.distplot(a=x2,ax=ax1)
ax1.set_title('一个没有kde的直方图')
sns.distplot(a=x1,kde=False,norm_hist=True,ax=ax2)
sns.distplot(a=x2,ax=ax2)
ax2.设置标题('setting norm\u hist=True')
xmin=min(x1.min(),x2.min())
xmax=max(x1.max(),x2.max())
bin=np.linspace(xmin,xmax,11)
sns.distplot(a=x1,kde=False,norm_hist=True,bin=bin,ax=ax3)
sns.distplot(a=x2,bin=bin,ax=ax3)
ax3.设置标题(“使用相同的箱子”)
plt.紧_布局()
plt.show()