理解Pandas散点矩阵图中的对角线
我正在用 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')