Python 绘制两个直方图。为什么可以';一个没有kde,而另一个没有?
所以我正在学习Kaggle数据可视化微观课程,我学到了绘制直方图的课程。 因此,练习要求绘制两个直方图,我这样做了,但如果我在其中一个图上添加kde=False,则只有该图可见,而另一个图不显示: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)']) ` 我不知道我听起来有多
`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()