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 相关文章推荐
gearman的安装启动及python API使用实例
Jul 08 Python
在Python中使用CasperJS获取JS渲染生成的HTML内容的教程
Apr 09 Python
Python的Django框架中使用SQLAlchemy操作数据库的教程
Jun 02 Python
Python简单生成8位随机密码的方法
May 24 Python
在CMD命令行中运行python脚本的方法
May 12 Python
Python嵌套列表转一维的方法(压平嵌套列表)
Jul 03 Python
Python 中字符串拼接的多种方法
Jul 30 Python
浅谈Pycharm调用同级目录下的py脚本bug
Dec 03 Python
Python通过递归获取目录下指定文件代码实例
Nov 07 Python
python sklearn包——混淆矩阵、分类报告等自动生成方式
Feb 28 Python
Django+Celery实现动态配置定时任务的方法示例
May 26 Python
python自动提取文本中的时间(包含中文日期)
Aug 31 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防注入和XSS攻击通用过滤
2015/09/13 PHP
JavaScript与HTML结合的基本使用方法整理
2015/10/12 PHP
让Laravel API永远返回JSON格式响应的方法示例
2018/09/05 PHP
jQuery dialog 异步调用ashx,webservice数据的代码
2010/08/03 Javascript
jQuery 表单验证扩展(三)
2010/10/20 Javascript
jquery中插件实现自动添加用户的具体代码
2013/11/15 Javascript
jQuery 顶部导航跟随滚动条滚动固定浮动在顶部
2014/06/06 Javascript
js+css实现tab菜单切换效果的方法
2015/01/20 Javascript
浅谈Javascript中的Function与Object
2015/01/26 Javascript
JS实现具备延时功能的滑动门菜单效果
2015/09/17 Javascript
JavaScript简单遍历DOM对象所有属性的实现方法
2015/10/21 Javascript
jquery无限级联下拉菜单简单实例演示
2015/11/23 Javascript
详解Vue监听数据变化原理
2017/03/08 Javascript
整理关于Bootstrap导航的慕课笔记
2017/03/29 Javascript
vue2.0 常用的 UI 库实例讲解
2017/12/12 Javascript
js判断传入时间和当前时间大小实例(超简单)
2018/01/11 Javascript
JavaScript实现区块链
2018/03/14 Javascript
vue 监听窗口变化对页面部分元素重新渲染操作
2020/07/28 Javascript
jdk1.8+vue elementui实现多级菜单功能
2020/09/24 Javascript
使用Python制作获取网站目录的图形化程序
2015/05/04 Python
python 随机打乱 图片和对应的标签方法
2018/12/14 Python
Python修改文件往指定行插入内容的实例
2019/01/30 Python
python实现简易淘宝购物
2019/11/22 Python
利用纯CSS3实现动态的自行车特效源码
2017/01/20 HTML / CSS
Michael Kors美国官网:美式奢侈生活风格的代表
2016/11/25 全球购物
Ashford台湾:以折扣价提供奢华的男女用表款
2019/12/04 全球购物
同步和异步有何异同,在什么情况下分别使用他们
2013/04/09 面试题
展会邀请函范文
2014/01/26 职场文书
仓库组长岗位职责
2014/01/29 职场文书
给小学生的新年寄语
2014/04/04 职场文书
小学生勤俭节约演讲稿
2014/08/28 职场文书
纪念一二九运动演讲稿
2014/09/16 职场文书
2016年禁毒宣传活动总结
2016/04/05 职场文书
导游词之西安骊山
2019/12/20 职场文书
Go归并排序算法的实现方法
2022/04/06 Golang
MySQL transaction事务安全示例讲解
2022/06/21 MySQL