【python画图_变量相关性(heatmap、pairplot)】

在进行数据分析的时候,图形可以帮助我们更直观的了解数据形态,那么常用的都有哪些图形呢?这些图形要怎么绘制?今天我们就先学习一下如何绘制图形,可以更直观的表示两个变量之间的相关性。

1、热力图heatmap

import numpy as np
import pandas as pd
from pandas import DataFrame as df
from sklearn.datasets import load_boston
from matplotlib import pyplot as plt
import seaborn as sns
​
## 提取数据
data = df(load_boston().data, columns=load_boston().feature_names)
data['target'] =  load_boston().target
​
## 描述两变量相关性
coeff = data.iloc[:,:-1].corr() # 相关性
sns.heatmap(coeff)

在这里插入图片描述
heatmap 常用参数理解

  • vmin、vmax
# vmin=None, vmax=None:用于锚定色彩映射的值,否则它们是从数据和其他关键字参数推断出来的
sns.heatmap(coeff, vmin=-1, vmax=1)

在这里插入图片描述

  • cmap
# cmap=None:颜色的选择,后面带“_r”的颜色倒置:Accent, Accent_r, Blues, Blues_r, BrBG, BrBG_r, BuGn, BuGn_r, BuPu, BuPu_r, CMRmap, CMRmap_r, Dark2, Dark2_r, GnBu, GnBu_r, Greens, Greens_r, Greys, Greys_r, OrRd, OrRd_r, Oranges, Oranges_r, PRGn, PRGn_r, Paired, Paired_r, Pastel1, Pastel1_r, Pastel2, Pastel2_r, PiYG, PiYG_r, PuBu, PuBuGn, PuBuGn_r, PuBu_r, PuOr, PuOr_r, PuRd, PuRd_r, Purples, Purples_r, RdBu, RdBu_r, RdGy, RdGy_r, RdPu, RdPu_r, RdYlBu, RdYlBu_r, RdYlGn, RdYlGn_r, Reds, Reds_r, Set1, Set1_r, Set2, Set2_r, Set3, Set3_r, Spectral, Spectral_r, Wistia, Wistia_r, YlGn, YlGnBu, YlGnBu_r, YlGn_r, YlOrBr, YlOrBr_r, YlOrRd, YlOrRd_r
sns.heatmap(coeff, cmap='YlGnBu')

在这里插入图片描述

  • center
# center=None:可以调整图像颜色的深浅
sns.heatmap(coeff, cmap='YlGnBu', center=0.5)

在这里插入图片描述

  • linewidths
# linewidths=0:单元格间宽度
sns.heatmap(coeff, cmap='YlGnBu', linewidths=3)

在这里插入图片描述

  • linecolor
# linecolor='white':单元格间的颜色
sns.heatmap(coeff, cmap='YlGnBu', linewidths=3, linecolor='black')

在这里插入图片描述

  • cbar
# cbar=True:是否绘制颜色条
sns.heatmap(coeff, cmap='YlGnBu', cbar=False)

在这里插入图片描述

  • square
# square=False:True:每个单元格为方形
sns.heatmap(coeff, cmap='YlGnBu', square=True)

在这里插入图片描述

  • annot
# annot=None:单元格内写入值 
sns.heatmap(coeff, cmap='YlGnBu', annot=True)

在这里插入图片描述

  • annot_kws
#annot_kws=None:单元格内写入值的设置
sns.heatmap(coeff, cmap='YlGnBu', annot=True, annot_kws={'size':5,'weight':'bold', 'color':'white'})

在这里插入图片描述

  • fmt
# fmt='.2g',设置字符格式
sns.heatmap(coeff, cmap='YlGnBu', annot=True, annot_kws={'size':5,'weight':'bold', 'color':'white'}, fmt='.3f')

加粗样式

  • xticklabels、yticklabels
# xticklabels='auto', yticklabels='auto':设置轴名称,False:不设置,也可以为列表 
sns.heatmap(coeff, cmap='YlGnBu', xticklabels=False,yticklabels=False)

在这里插入图片描述

2、pairplot

pairplot不仅可以绘制变量X间的相关性,也可以展示每个变量X与结果Y之间的关系,下面我们就以X与Y的关系为例绘制图形。

from sklearn.datasets import load_breast_cancer
data = df(load_breast_cancer().data, columns=load_breast_cancer().feature_names)
data['target'] =  load_breast_cancer().target
# 我们这里只取后面几个字段
data1 = data.iloc[:,-5:]
sns.pairplot(data1)

在这里插入图片描述

pairplot 常用参数理解

  • hue

# hue=None:针对某一字段进行分类
sns.pairplot(data1, hue='target')

在这里插入图片描述

  • hue_order
# hue_order=None:颜色变量的顺序
sns.pairplot(data1, hue='target', hue_order=[1,0])

在这里插入图片描述

  • palette
# palette=None:设置分类字段的颜色
sns.pairplot(data1, hue='target', palette='YlGnBu')

在这里插入图片描述

  • kind
# kind='scatter':非对角线上的图形形式,共四种:scatter、kde、hist、reg
sns.pairplot(data1, hue='target', palette='YlGnBu', kind='kde')

在这里插入图片描述

sns.pairplot(data1, hue='target', palette='YlGnBu', kind='hist')

在这里插入图片描述

sns.pairplot(data1, hue='target', palette='YlGnBu', kind='reg')

在这里插入图片描述

  • diag_kind
# diag_kind='auto':对角线上的图形形式,hist、kde
sns.pairplot(data1, hue='target', palette='YlGnBu', kind='scatter', diag_kind='hist')

在这里插入图片描述

  • markers
# markers=None:散点的样式,'o','*','s','D','p','>' 
sns.pairplot(data1, hue='target', palette='YlGnBu', markers=['*','s'])

在这里插入图片描述

  • corner
# corner=False:corner=True,下三角显示图形
sns.pairplot(data1, hue='target', palette='YlGnBu', corner=True)

在这里插入图片描述

  • height、aspect
# height=2.5:每张图的高,aspect=1:宽度,相对于高, 0.5就是 高*0.5
sns.pairplot(data1, hue='target', palette='YlGnBu', height=1)

在这里插入图片描述

  • x_vars、y_vars
# x_vars=None,y_vars=None:指定x_vars和y_vars
sns.pairplot(data1, hue='target', palette='YlGnBu', x_vars=['worst concavity','worst concave points'], y_vars=['worst symmetry','worst fractal dimension'])

在这里插入图片描述

详细内容请看我公众号~
【python画图_变量相关性(heatmap、pairplot)】

  • 7
    点赞
  • 86
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
⼤数据可视化(五)关系数据可视化 关系数据具有关联性与分布性 数据的关联性 数据的关联性 两个量化数据之间的数理关系 通过数据关联性可已根据⼀个已知的数值变化来预测另⼀个数值的变化。 散点图 散点图 正相关、负相关、不相关 # 散点图 crime = pd.read_csv("data/crimeRatesByState2005.csv") ( Scatter() .add_xaxis(crime["murder"]) .add_yaxis("", crime["burglary"]) .set_global_opts( title_opts=opts.TitleOpts(title="谋杀案和⼊室盗窃案的关联性散点图",pos_left="center"), xaxis_opts=opts.AxisOpts(splitline_opts=opts.SplitLineOpts(is_show=True),name="谋杀案",name_location="middle",name_gap=30), yaxis_opts=opts.AxisOpts(splitline_opts=opts.SplitLineOpts(is_show=True),name="⼊室盗窃案",name_location="center",name_gap=50), legend_opts=opts.LegendOpts(is_show=False) ) .set_series_opts(label_opts=opts.LabelOpts(is_show=False)) .render("result/5-2.html") ) #matplotlib实现 crime = pd.read_csv("data/crimeRatesByState2005.csv") crime=crime[crime.state!="United States"] crime=crime[crime.state!="District of Columbia"] plt.scatter(crime["murder"],crime["burglary"]) plt.show() 散点图矩阵 散点图矩阵 同时绘制多个变量间的散点图,快速发现变量间的相关性 #散点图矩阵 crime = pd.read_csv("data/crimeRatesByState2005.csv") crime=crime[crime.state!="United States"] crime=crime[crime.state!="District of Columbia"] crime=crime.drop(["population"],axis=1) crime=crime.drop(["state"],axis=1) g=sns.pairplot(crime,diag_kind="kde",kind='reg')#kde密度曲线reg拟合曲线 plt.show() ⽓泡图 ⽓泡图 由⼤⼩不同的标记表⽰,便于⽐较三个变量 数据的分布性 数据的分布性 可视化图⼏乎可以表⽰所有数据的内容,并且将数据分布的情况也呈现。 例如曲线平坦,代表数据分布均匀;重⼼偏左,⼤部分数据取较低的数值;呈现正态分布。表⽰⼤部分数据在平均值附近。 茎叶图 茎叶图 可以⼀次完成统计分组和次数分配,是探索数据分析中对数据初步形象的描绘。 优点: 1. 统计图上没有原始数据的损失 2. 图中的数据可以随时记录和添加,⽅便使⽤ 直⽅图 直⽅图 ⾼度表⽰数值频率,宽度数值区间。 密度图 密度图 反映数据分布的密度情况。
Pairplot图是一种非常有用的数据可视化工具,可以帮助我们更好地理解数据集中各个变量之间的关系和分布情况。在分析Pairplot图时,可以考虑以下几个方面: 1. 变量之间的关系: Pairplot图中展示了每个变量与其他所有变量之间的散点图和直方图,我们可以通过观察散点图来判断变量之间的相关性,例如正相关、负相关和无关等。如果两个变量之间存在正相关,那么它们的散点图将呈现出向上的趋势;如果是负相关,则表现为向下的趋势;如果是无关,则呈现出分散的趋势。 2. 变量的分布: 在Pairplot图中,对角线上的图形是每个变量的单变量分布图,我们可以通过观察直方图来了解每个变量的分布情况,例如是否符合正态分布等。如果一个变量的分布接近正态分布,则其直方图应该呈现出钟形曲线。 3. 异常值的检测: 通过观察Pairplot图中的散点图,我们可以发现一些异常值,例如某些点与其他点明显不同,可以进一步分析这些异常值,找出其原因并进行处理。 4. 变量之间的复杂关系: Pairplot图可以同时比较多个变量之间的关系,如果变量之间存在复杂的关系,我们可以通过观察Pairplot图来了解这些关系,例如非线性关系等。 总之,Pairplot图是一种非常有用的数据可视化工具,能够帮助我们更好地理解数据集中各个变量之间的关系和分布情况,为我们的数据分析提供有力支持。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值