📅  最后修改于: 2023-12-03 15:19:59.454000             🧑  作者: Mango
scatter_matrix函数是Pandas库中的一个函数,该函数允许我们绘制一个DataFrame中每对列的散点图矩阵,并且可以为不同的列设置不同的颜色以及不同的标记样式。在数据分析及可视化方面是一个非常有用的工具。
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)
frame:DataFrame,用于绘制散点图矩阵的数据。
alpha:float,纯度(透明度)(0 <= alpha <= 1)。
figsize:元组(float,float),矩形绘图区域的宽度,高度(英寸)。
ax:matplotlib.axes.Axes实例,散点图矩阵用于可视化的轴实例。
grid:bool或None,如果为True,则在图形上绘制网格。
diagonal:{"hist", "kde"}, 可选项,图形对角线上的绘图类型。
marker:str,散点的标记类型。
density_kwds:dict,与X轴和Y轴直方图一起使用的参数传递给seaborn.kdeplot()。
hist_kwds:dict,与X轴和Y轴直方图一起使用的参数传递给numpy.hist()。
range_padding:float,绘图区域与x轴、y轴边界之间的填充系数。
kwargs:其他关键字参数,与x和y的位置和名称有关。
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
# 从URL(UCI机器学习库)创建数据帧(dataframe)
url = "https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data"
df = pd.read_csv(url, names=['花萼长度', '花萼宽度', '花瓣长度', '花瓣宽度', '品种'])
colors = {'Iris-setosa':'r', 'Iris-versicolor':'g', 'Iris-virginica':'b'}
scatter_matrix = pd.plotting.scatter_matrix(df, figsize=[20,20], marker='D', diagonal='hist', s=100, alpha=0.5, grid=True, c=df['品种'].map(colors))
上述代码的结果如下:
注意:在这个例子中,我们对每个品种(colored dots)用不同的颜色来区分。所以,我们需要在scatter_matrix函数中,使用'品种'列(即我们要区分的列名),设置每个颜色所对应的值。这里我们选择了使用一个字典,包含品种名称(字符串)和RGB颜色(字符串)之间的映射。