pandas.plotting scatter_matrix 关于主对角线图的混淆

问题描述

我对 Select * from customer where custid = (select custid from customer where device ID = 123 and date <= currentdate fetch first row only) where date<= current date 模块中的 scatter_matrix 如何工作有点困惑。例如,查看这里的情节 https://www.geeksforgeeks.org/pair-plots-using-scatter-matrix-in-pandas/

沿着主对角线的 3 个图看起来像分布。但是 y 和 x 轴标签表明它正在绘制一个变量与自身的关系,所以它不应该是一条直线吗?分布从何而来?

解决方法

默认情况下 pandas.plotting.scatter_matrix 在对角线上绘制直方图。每个直方图仅显示该列数据的计数。否则,正如你提到的,我们只会在对角线上有(无用的)直线。

有一个 diagonal 参数可以在直方图或核密度之间进行选择:

pandas.plotting.scatter_matrix(frame,alpha=0.5,figsize=None,ax=None,grid=False,diagonal='hist',marker='.',density_kwds=None,hist_kwds=None,range_padding=0.05,**kwargs)

...

diagonal{'hist','kde'}:在 'kde' 和 'hist' 之间进行选择,用于对角线上的核密度估计或直方图。