绘制矩阵散点图

什么是矩阵散点图

当我们想要探索两组变量之间的关系时,矩阵散点图是一种有用的可视化工具。它能够帮助我们快速地观察多个变量之间的关联性,特别是在统计分析和数据挖掘领域中。矩阵散点图实际上是由多个散点图组成的矩阵,每个散点图表示两个不同变量之间的关系。

绘制矩阵散点图

1.matplotlib绘制矩阵散点图

matplotlib没有提供现成的库函数,但是可以通过创建子图然后绘制散点图的方式来绘制heatmap

step1: 绘制多个子axe
step2: for循环绘图(非对角线scatter图, 对角线什么其他图),同时还得注意label,哪些位置该显示label,哪些不显示

import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
import seaborn as sns  # 仅用于数据加载

# 加载数据集
iris = sns.load_dataset('iris')

# 选择要绘制的列
columns = iris.columns[:-1]  # 去掉species列
n = len(columns)

fig, axarr = plt.subplots(n, n, figsize=(12, 12))

# 用嵌套循环遍历每对变量
for i in range(n):
    for j in range(n):
        ax = axarr[i, j]
        if i == j:
            # 对角线上的直方图
            ax.hist(iris[columns[i]], bins=10, edgecolor='k', color='gray')
        else:
            # 散点图
            ax.scatter(iris[columns[j]], iris[columns[i]], s=15)
        
        # 隐藏每个子图的x和y标签以避免混乱
        if j != 0:
            ax.set_yticklabels([])
            ax.set_ylabel('')
        if i != n-1:
            ax.set_xticklabels([])
            ax.set_xlabel('')
        if j == 0:
            ax.set_ylabel(columns[i])
        if i == n-1:
            ax.set_xlabel(columns[j])
fig.suptitle('Pairs Plotting for Iris Data', size=30)
plt.show()

2. seaborn绘制矩阵散点图

导入seaborn包,直接调用sns.pairplot()绘制矩阵散点图

import seaborn as sns
import matplotlib.pyplot as plt

# 示例数据
iris = sns.load_dataset('iris')

# 创建矩阵散点图
sns.pairplot(iris, hue='species')

plt.show()

posted @ 2023-08-28 13:15  SL霸霸  阅读(555)  评论(0编辑  收藏  举报