理解Pandas散点矩阵图中的对角线

22 投票
2 回答
27120 浏览
提问于 2025-04-27 12:04

我正在用 Pandas 画散点图。我能理解这个图,但对对角线上的曲线有点困惑。有人能给我解释一下它们是什么意思吗?

图片:

在这里输入图片描述

代码:

import pylab
import numpy as np
from pandas.tools.plotting import scatter_matrix
import pandas as pd

def make_scatter_plot(X, name):    
    """
    Make scatterplot.

    Parameters:
    -----------
    X:a design matrix where each column is a feature and each row is an observation.
    name: the name of the plot.
    """
    pylab.clf()
    df = pd.DataFrame(X)
    axs = scatter_matrix(df, alpha=0.2, diagonal='kde')

    for ax in axs[:,0]: # the left boundary
        ax.grid('off', axis='both')
        ax.set_yticks([0, .5])

    for ax in axs[-1,:]: # the lower boundary
        ax.grid('off', axis='both')
        ax.set_xticks([0, .5])

    pylab.savefig(name + ".png")
暂无标签

2 个回答

5

绘图方法允许我们使用几种不同的图表样式,而不仅仅是默认的折线图。我们可以通过在plot()函数中使用kind这个参数来指定这些样式。以下是一些可用的图表类型:

  • ‘bar’或‘barh’用于柱状图
  • ‘hist’用于直方图
  • ‘box’用于箱线图
  • ‘kde’或'density'用于密度图
  • ‘area’用于面积图
  • ‘scatter’用于散点图
  • ‘hexbin’用于六边形箱图
  • ‘pie’用于饼图

https://pandas.pydata.org/pandas-docs/stable/visualization.html

27

从这个散点矩阵中,你可以看到每一列的数据是如何相互比较的。

不过,当你看到对角线上的图时,其实是在显示一列数据和它自己之间的关系。因为这总是会是一条直线,所以Pandas觉得这样没什么用,干脆就给你显示那一列数据的密度图,这样能提供更多有用的信息。

想了解更多,可以查看这个链接:http://pandas.pydata.org/pandas-docs/stable/visualization.html#density-plot

如果你更喜欢直方图,可以把你的绘图代码改成:

axs = scatter_matrix(df, alpha=0.2, diagonal='hist')

撰写回答