Python可视化学习之seaborn绘制矩阵图详解


Posted in Python onFebruary 24, 2022

本文内容速览

Python可视化学习之seaborn绘制矩阵图详解

Python可视化学习之seaborn绘制矩阵图详解

1、绘图数据准备

还是使用鸢尾花iris数据集

#导入本帖要用到的库,声明如下:
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
from pandas import Series,DataFrame
from sklearn import datasets
import seaborn as sns
 
#导入鸢尾花iris数据集(方法一)
#该方法更有助于理解数据集
iris=datasets.load_iris()
x, y =iris.data,iris.target
y_1 = np.array(['setosa' if i==0 else 'versicolor' if i==1 else 'virginica' for i in y])
pd_iris = pd.DataFrame(np.hstack((x, y_1.reshape(150,1))),columns=['sepal length(cm)','sepal width(cm)','petal length(cm)','petal width(cm)','class'])
 
#astype修改pd_iris中数据类型object为float64
pd_iris['sepal length(cm)']=pd_iris['sepal length(cm)'].astype('float64')
pd_iris['sepal width(cm)']=pd_iris['sepal width(cm)'].astype('float64')
pd_iris['petal length(cm)']=pd_iris['petal length(cm)'].astype('float64')
pd_iris['petal width(cm)']=pd_iris['petal width(cm)'].astype('float64')
 
 
#导入鸢尾花iris数据集(方法二)
#import seaborn as sns
#iris_sns = sns.load_dataset("iris")

数据集简单统计

Python可视化学习之seaborn绘制矩阵图详解

2、seaborn.pairplot

语法:seaborn.pairplot(data, hue=None, hue_order=None, palette=None, vars=None, x_vars=None, y_vars=None, kind='scatter', diag_kind='auto', markers=None, height=2.5, aspect=1, corner=False, dropna=True, plot_kws=None, diag_kws=None, grid_kws=None, size=None)

g = sns.pairplot(pd_iris)
g.fig.set_size_inches(12,12)#figure大小
sns.set(style='whitegrid',font_scale=1.5)#文本大小

Python可视化学习之seaborn绘制矩阵图详解

对角线4张图是变量自身的分布直方图;

非对角线的 12 张就是某个变量和另一个变量的关系。

加上分类变量

g = sns.pairplot(pd_iris,
                 hue='class'#按照三种花分类
                )
sns.set(style='whitegrid')
g.fig.set_size_inches(12,12)
sns.set(style='whitegrid',font_scale=1.5)

Python可视化学习之seaborn绘制矩阵图详解

修改调色盘

可以使用Matplotlib、seaborn、颜色号list等色盘。

可参考:Python可视化学习之seaborn调色盘

import palettable 
g = sns.pairplot(pd_iris,
                 hue='class',
                 palette=palettable.cartocolors.qualitative.Bold_9.mpl_colors,#palettable颜色盘
                
                )
sns.set(style='whitegrid')
g.fig.set_size_inches(12,12)
sns.set(style='whitegrid',font_scale=1.5)

Python可视化学习之seaborn绘制矩阵图详解

g = sns.pairplot(pd_iris,
                 hue='class',
                palette='Set1',#Matplotlib颜色
                
                )
sns.set(style='whitegrid')
g.fig.set_size_inches(12,12)
sns.set(style='whitegrid',font_scale=1.5)

Python可视化学习之seaborn绘制矩阵图详解

g = sns.pairplot(pd_iris,
                 hue='class',
                palette=['#dc2624', '#2b4750', '#45a0a2'],#使用传入的颜色list
                
                )
sns.set(style='whitegrid')
g.fig.set_size_inches(12,12)
sns.set(style='whitegrid',font_scale=1.5)

Python可视化学习之seaborn绘制矩阵图详解

x,y轴方向选取相同子集 

import palettable
g = sns.pairplot(pd_iris,
                 hue='class',
                 palette=palettable.cartocolors.qualitative.Bold_9.mpl_colors,
                 vars=['sepal length(cm)','sepal width(cm)'],#x,y轴方向选取相同子集绘图
                
                )
sns.set(style='whitegrid')
g.fig.set_size_inches(12,6)
sns.set(style='whitegrid',font_scale=1.5)

Python可视化学习之seaborn绘制矩阵图详解

x,y轴方向选取不同子集

import palettable
g = sns.pairplot(pd_iris,
                 hue='class',
                 palette=palettable.cartocolors.qualitative.Bold_9.mpl_colors,
                 x_vars=['sepal length(cm)','sepal width(cm)'],#x,y轴方向选取不同子集
                 y_vars=['petal length(cm)','petal width(cm)'],
                
                )
sns.set(style='whitegrid')
g.fig.set_size_inches(12,6)
sns.set(style='whitegrid',font_scale=1.5)

Python可视化学习之seaborn绘制矩阵图详解

非对角线散点图加趋势线 

import palettable
g = sns.pairplot(pd_iris,
                 hue='class',
                 palette=palettable.cartocolors.qualitative.Bold_9.mpl_colors,
                 kind='reg',#默认为scatter,reg加上趋势线                 
                
                )
sns.set(style='whitegrid')
g.fig.set_size_inches(12,12)
sns.set(style='whitegrid',font_scale=1.5)

Python可视化学习之seaborn绘制矩阵图详解

对角线上的四个图绘制方式

可选参数为‘auto’, ‘hist’(默认), ‘kde’, None。

import palettable
g = sns.pairplot(pd_iris,
                 hue='class',
                 palette=palettable.cartocolors.qualitative.Bold_9.mpl_colors,
                 diag_kind='hist',#hist直方图               
                
                )
sns.set(style='whitegrid')
g.fig.set_size_inches(12,12)
sns.set(style='whitegrid',font_scale=1.5)

Python可视化学习之seaborn绘制矩阵图详解

只显示网格下三角图形 

import palettable
g = sns.pairplot(pd_iris,
                 hue='class',
                 palette='Set1',
                 corner=True#图形显示左下角
                
                )
 
g.fig.set_size_inches(12,12)
sns.set(font_scale=1.5)

Python可视化学习之seaborn绘制矩阵图详解

图形外观设置 

import palettable
g = sns.pairplot(pd_iris,
                 hue='class',
                 palette='Set1',
                 markers=['$\clubsuit$','.','+'],#散点图的marker
                 plot_kws=dict(s=50, edgecolor="r", linewidth=1),#非对角线上的图marker大小、外框、外框线宽
                 diag_kws=dict(shade=True)#对角线上核密度图是否填充
                 
                
                )
g.fig.set_size_inches(12,12)
sns.set(font_scale=1.5)

Python可视化学习之seaborn绘制矩阵图详解

3、seaborn.PairGrid(更灵活的绘制矩阵图)

seaborn.PairGrid(data, hue=None, hue_order=None, palette=None, hue_kws=None, vars=None, x_vars=None, y_vars=None, corner=False, diag_sharey=True, height=2.5, aspect=1, layout_pad=0, despine=True, dropna=True, size=None)

每个子图绘制同类型的图

g = sns.PairGrid(pd_iris, 
                 hue='class',
                 palette='husl',)
g = g.map(plt.scatter)#map每个子图绘制一样类型的图
g = g.add_legend()
g.fig.set_size_inches(12,12)
sns.set(style='whitegrid',font_scale=1.5)

Python可视化学习之seaborn绘制矩阵图详解

对角线和非对角线分别绘制不同类型图

g = sns.PairGrid(pd_iris, 
                 hue='class',
                palette='Set1',)
g = g.map_diag(plt.hist)#对角线绘制直方图
g = g.map_offdiag(plt.scatter)#非对角线绘制散点图
g = g.add_legend()
g.fig.set_size_inches(12,12)
sns.set(style='whitegrid',font_scale=1.5)

Python可视化学习之seaborn绘制矩阵图详解

对角线上方、对角线、对角线下方分别绘制不同类型图

g = sns.PairGrid(pd_iris, hue='class',)
g = g.map_upper(sns.scatterplot)
g = g.map_lower(sns.kdeplot, colors="C0")
g = g.map_diag(sns.kdeplot, lw=2)3绘制核密度图
g = g.add_legend()#添加图例
sns.set(style='whitegrid',font_scale=1.5)

Python可视化学习之seaborn绘制矩阵图详解

其它一些参数修改

g = sns.PairGrid(pd_iris, hue='class',
                 palette='Set1',
                 hue_kws={"marker": ["^", "s", "D"]},#设置marker
                 diag_sharey=False,
                )
g = g.map_upper(sns.scatterplot,edgecolor="w", s=40)#设置点大小,外框颜色
g = g.map_lower(sns.kdeplot, colors="#01a2d9")#设置下三角图形颜色
g = g.map_diag(sns.kdeplot, lw=3)#对角图形颜色
g = g.add_legend()#添加图例
g.fig.set_size_inches(12,12)
sns.set(style='whitegrid',font_scale=1.5)

Python可视化学习之seaborn绘制矩阵图详解

以上就是Python可视化学习之seaborn绘制矩阵图详解的详细内容,更多关于Python seaborn矩阵图的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
python ElementTree 基本读操作示例
Apr 09 Python
python求斐波那契数列示例分享
Feb 14 Python
PyMongo安装使用笔记
Apr 27 Python
Python自动调用IE打开某个网站的方法
Jun 03 Python
python3 打开外部程序及关闭的示例
Nov 06 Python
Django的性能优化实现解析
Jul 30 Python
Python获取一个用户名的组ID过程解析
Sep 03 Python
Python MongoDB 插入数据时已存在则不执行,不存在则插入的解决方法
Sep 24 Python
Python使用matplotlib 模块scatter方法画散点图示例
Sep 27 Python
Django实现文件上传和下载功能
Oct 06 Python
Python对象的属性访问过程详解
Mar 05 Python
Django 自定义权限管理系统详解(通过中间件认证)
Mar 11 Python
Python matplotlib可视化之绘制韦恩图
Python语言中的数据类型-序列
Feb 24 #Python
浅析python中特殊文件和特殊函数
Feb 24 #Python
Python中字符串对象语法分享
Feb 24 #Python
Python+Matplotlib+LaTeX玩转数学公式
Python语言内置数据类型
Feb 24 #Python
Python中的程序流程控制语句
Feb 24 #Python
You might like
php 高性能书写
2010/12/11 PHP
使用openssl实现rsa非对称加密算法示例
2014/01/24 PHP
php计算数组不为空元素个数的方法
2014/01/27 PHP
php常用表单验证类用法实例
2015/06/18 PHP
PHP设计模式(八)装饰器模式Decorator实例详解【结构型】
2020/05/02 PHP
用JQuery调用Session的实现代码
2010/10/29 Javascript
JavaScript全局函数使用简单说明
2011/03/11 Javascript
Javascript计算时间差的函数分享
2011/07/04 Javascript
Three.js源码阅读笔记(基础的核心Core对象)
2012/12/27 Javascript
浅谈JavaScript function函数种类
2014/12/29 Javascript
原生JavaScript实现滚动条效果
2020/03/24 Javascript
JavaScript判断浏览器和hack滚动条的写法
2017/07/23 Javascript
vue与bootstrap实现时间选择器的示例代码
2017/08/26 Javascript
Node.JS 循环递归复制文件夹目录及其子文件夹下的所有文件
2017/09/18 Javascript
基于javascript中的typeof和类型判断(详解)
2017/10/27 Javascript
vue.js内置组件之keep-alive组件使用
2018/07/10 Javascript
JavaScript引用类型Array实例分析
2018/07/24 Javascript
vue中使用better-scroll实现滑动效果及注意事项
2018/11/15 Javascript
Easyui 去除jquery-easui tab页div自带滚动条的方法
2019/05/10 jQuery
koa2+vue实现登陆及登录状态判断
2019/08/15 Javascript
解决Vue在Tomcat8下部署页面不加载的问题
2019/11/12 Javascript
python在linux系统下获取系统内存使用情况的方法
2015/05/11 Python
利用python生成一个导出数据库的bat脚本文件的方法
2016/12/30 Python
详解如何用OpenCV + Python 实现人脸识别
2017/10/20 Python
在pycharm下设置自己的个性模版方法
2019/07/15 Python
Django如何简单快速实现PUT、DELETE方法
2019/07/24 Python
python第三方库学习笔记
2020/02/07 Python
python针对Oracle常见查询操作实例分析
2020/04/30 Python
在django中实现choices字段获取对应字段值
2020/07/12 Python
Python数据模型与Python对象模型的相关总结
2021/01/26 Python
canvas如何实现多张图片编辑的图片编辑器
2020/03/10 HTML / CSS
Staples加拿大官方网站:办公用品一站式采购
2016/09/25 全球购物
幼儿园元旦家长感言
2014/02/27 职场文书
五心教育心得体会
2014/09/04 职场文书
MYSQL 运算符总结
2021/11/11 MySQL
win11如何查看端口是否被占用? Win11查看端口是否占用的技巧
2022/04/05 数码科技