首页 > 其他分享 >绘制矩阵散点图

绘制矩阵散点图

时间:2023-08-28 13:23:10浏览次数:41  
标签:iris 矩阵 散点图 ax 绘制 columns

什么是矩阵散点图

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

绘制矩阵散点图

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()

标签:iris,矩阵,散点图,ax,绘制,columns
From: https://www.cnblogs.com/slbaba/p/17662032.html

相关文章

  • 绘制heatmap(热力图)
    什么是heatmap?热力图在实际中常用于展示一组变量的相关系数矩阵,在展示列联表的数据分布上也有较大的用途,通过热力图我们可以非常直观地感受到数值大小的差异状况。如何绘制heatmap图1.使用matplotlib库绘制2.使用seaborn库绘制简单暴力,直接使用sns.heatmap().详细可查......
  • 行列式、矩阵树定理
    推荐阅读:矩阵树定理(+行列式)-command_block的博客。行列式定义这个东西一般用于求解图的生成树个数(矩阵树定理)。称一个大小为\(n\timesn\)的矩阵\(A\)的行列式为\(\det(A)\)(或\(|A|\))。\[\det(A)=\sum_{p\texttt{是一个大小为n排列}}(-1)^{F(p)}\prod_{i=1}^{n}A......
  • 数组章节的进阶54. 螺旋矩阵
    54. 螺旋矩阵1classSolution:2defspiralOrder(self,matrix:List[List[int]])->List[int]:3m,n=len(matrix),len(matrix[0])4res=[]#存放遍历后的结果5startx=starty=067foroffsetinrange(min(m,......
  • 剑指Offer 29. 顺时针打印矩阵
    题目链接:剑指Offer29.顺时针打印矩阵题目描述:输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。解法思路:本题的题意比较简单,也就是螺旋打印矩阵,但是这里面有技巧,使用数组定义好在打印过程中的四个移动方向在遍历的过程中,每次都是在该方向上移动,当移动......
  • 稀疏矩阵的压缩存储及转置,快速转置法,C++代码实现
    /*稀疏矩阵的压缩存储及转置*/#include<iostream>usingnamespacestd;/*三元组顺序表的类型定义*/#defineitemSize100typedefstruct{introw,col;intitem;}thNode;typedefstruct{thNode*data;//data[0]不用intm,n,t;//分别表示行数、列......
  • 用 plantUML 快速绘制 UML 图
    用plantUML快速绘制UML图UML(统一建模语言)是一种用于软件开发中的可视化建模语言,它可以帮助我们描述系统的结构、行为和交互等方面。UML包括了多种不同的图,例如类图、时序图、用例图等,每种图都有自己的符号和规则。但是,要用传统的绘图工具来画UML图,可能会比较繁琐和耗时,而......
  • 【Matlab 教程】-02 Matlab 基本操作与矩阵输入
    1、Matlab2020a界面简介2、命令行窗口1、操作符+-*/^在命令行窗口,输入表达式并回车计算,结果会以ans作为默认变量名,也可以在工作区查看优先级:()>^>*/>+-点击查看操作符+-*/^代码>>2+1ans=3 2+12-12/32*32^32、练习注意l......
  • Python绘图:小提琴图的理解与绘制
    目录一、小提琴图简介1.1小提琴图的概念1.2小提琴图与箱线图、核密度函数以及高斯混合体之间的关系与区别二、箱线图的绘制2.1基于matplotlib库的箱线图绘制(1)函数主要参数及功能(2)函数返回值(3)示例2.2基于seaborn库的箱线图绘制(1)函数主要参数功能及其返回值(2)示例附录Python绘图......
  • 玩转 PI 系列-看起来像服务器的 ARM 开发板矩阵-Firefly Cluster Server
    前言基于我个人的工作内容和兴趣,想要在家里搞一套服务器集群,用于容器/K8s等方案的测试验证。考虑过使用二手服务器,比如DellR730,还搞了一套配置清单,如下:DellR7303.5尺寸规格硬盘CPU:2686v4*2内存:16g*8存储:480Gintelssd系统盘+6tsas希捷*2个数据盘RAID卡:h73......
  • 玩转 PI 系列-看起来像服务器的 ARM 开发板矩阵-Firefly Cluster Server
    前言基于我个人的工作内容和兴趣,想要在家里搞一套服务器集群,用于容器/K8s等方案的测试验证。考虑过使用二手服务器,比如DellR730,还搞了一套配置清单,如下:DellR7303.5尺寸规格硬盘CPU:2686v4*2内存:16g*8存储:480Gintelssd系统盘+6tsas希捷*2个数据盘RAID卡:h7......