我正在使用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")
答案 0 :(得分:25)
正如您所知,散点矩阵正在绘制针对彼此列指定的每个列。
然而,在这种格式中,当你到达对角线时,你会看到一个列对着自己的图。由于这总是一条直线,Pandas决定它可以为您提供更多有用的信息,并绘制该列数据的密度图。
请参阅http://pandas.pydata.org/pandas-docs/stable/visualization.html#density-plot。
如果您想要直方图,可以将绘图代码更改为:
axs = scatter_matrix(df, alpha=0.2, diagonal='hist')
答案 1 :(得分:5)
绘图方法允许少数默认线图之外的绘图样式。这些方法可以作为plot()的kind关键字参数提供。其中包括:
https://pandas.pydata.org/pandas-docs/stable/visualization.html