Matplotlib Pairs函数介绍
在R语言中,pairs
函数可用于绘制多个变量之间的散点图矩阵。Matplotlib同样也提供了这样的一种方法来可视化多个变量之间的相关关系。在本文中,我们将会探讨在Matplotlib中如何使用scatter_matrix
函数绘制散点图矩阵,并提供一些实例来说明如何使用该函数。
阅读更多:Matplotlib 教程
scatter_matrix
函数
scatter_matrix
函数允许我们绘制变量集合的散点图矩阵。下面是该函数的基本用法:
import matplotlib.pyplot as plt
import pandas as pd
# 载入数据
iris = pd.read_csv('iris.csv')
# 删掉无用列
iris = iris.drop(columns = ['Id'])
# 设置散点图的颜色以及对角线图的类型
colors = ['red','green','blue']
scatter_matrix = pd.plotting.scatter_matrix(iris, alpha=1, figsize=(15,15), diagonal='hist', c=[colors[i] for i in iris['Species'].cat.codes])
# 调整坐标轴的标签字体以及旋转角度
[s.xaxis.label.set_rotation(45) for s in scatter_matrix.reshape(-1)]
[s.yaxis.label.set_rotation(0) for s in scatter_matrix.reshape(-1)]
# 调整坐标轴位置以及间距
[s.get_yaxis().set_label_coords(-0.5,0.5) for s in scatter_matrix.reshape(-1)]
[s.get_xaxis().set_label_coords(0.5,-0.5) for s in scatter_matrix.reshape(-1)]
plt.show()
还可以使用参数marker
来更改散点图的形状,如下所示:
colors = ['red','green','blue']
scatter_matrix = pd.plotting.scatter_matrix(iris, alpha=1, figsize=(15,15), diagonal='hist', c=[colors[i] for i in iris['Species'].cat.codes], marker='.')
也可以把对角线上的直方图替换成核密度图,方法如下:
from scipy.stats import gaussian_kde
fig, axs = plt.subplots(nrows=4, ncols=4, figsize=(15,15))
fig.subplots_adjust(hspace=0.05, wspace=0.05)
colors = ['red','green','blue']
for ax, color in zip(axs.flat, colors):
ax.hist(iris['PetalWidthCm'], bins=15, color=color)
ax.yaxis.set_visible(False)
ax.xaxis.set_visible(False)
# 添加核密度图
kernel = gaussian_kde(iris['PetalWidthCm'])
x = np.linspace(0,1.5,100)
ax.plot(x,kernel(x), color='k')
fig.show()
总结
本文介绍了如何使用Matplotlib的scatter_matrix
函数绘制多个变量之间的散点图矩阵,并提供了一些实例来说明如何利用该函数绘制优质的散点图矩阵。在实践中,我们还可以根据数据集的特点,灵活调整相应的函数参数,达到更好的绘图效果。