python的seaborn用于可视化分析,python seaborn 散点图矩阵

  python的seaborn用于可视化分析,python seaborn 散点图矩阵

  矩阵图即用一张图绘制多个变量之间的关系,数据挖掘中常用于初期数据探索。本文介绍大蟒中seaborn.pairplot和海博恩。配对网格绘制矩阵图,需要的可以参考一下

  

目录
本文内容速览1、绘图数据准备2、seaborn.pairplot加上分类变量修改调色盘x,y轴方向选取相同子集x,y轴方向选取不同子集非对角线散点图加趋势线对角线上的四个图绘制方式只显示网格下三角图形图形外观设置3、seaborn .配对网格(更灵活的绘制矩阵图)每个子图绘制同类型的图对角线和非对角线分别绘制不同类型图对角线上方、对角线、对角线下方分别绘制不同类型图其它一些参数修改

  

本文内容速览

  

1、绘图数据准备

  还是使用鸢尾花虹膜数据集

  #导入本帖要用到的库,声明如下:

  将matplotlib.pyplot作为血小板计数导入

  将数组作为铭牌导入

  进口熊猫作为螺纹中径

  来自熊猫进口系列,数据框架

  从实例导入数据集

  将海生的作为社交网站(Social Network Site的缩写)导入

  #导入鸢尾花虹膜数据集(方法一)

  #该方法更有助于理解数据集

  iris=datasets.load_iris()

  x,y=虹膜.数据,虹膜.目标

  y _ 1=NP。数组([ setosa if I==0 else versicolor if I==1 else virginica for I in y])

  pd_iris=pd .DataFrame(np.hstack((x,y _ 1。shape(150,1))),columns=[萼片长度(厘米),萼片宽度(厘米),花瓣长度(厘米),花瓣宽度(厘米),类])

  # a类型修改pd_iris中数据类型目标为float64

  pd_iris[萼片长度(厘米)]=pd_iris[萼片长度(厘米)]。astype(float64 )

  pd_iris[萼片宽度(厘米)]=pd_iris[萼片宽度(厘米)]。astype(float64 )

  pd_iris[花瓣长度(厘米)]=pd_iris[花瓣长度(厘米)]。astype(float64 )

  pd_iris[花瓣宽度(厘米)]=pd_iris[花瓣宽度(厘米)]。astype(float64 )

  #导入鸢尾花虹膜数据集(方法二)

  #将海生的作为社交网站(Social Network Site的缩写)导入

  # iris _ SNS=SNS。load _ dataset( iris )

  数据集简单统计

  

2、seaborn.pairplot

  语法:seaborn.pairplot(data,hue=None,hue_order=None,palette=None,vars=None,x_vars=None,y _ vars=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)#图大小

  sns.set(sty

  le=whitegrid,font_scale=1.5)#文本大小

  

  对角线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)

  

  

  

  

修改调色盘

  可以使用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)

  

  

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)

  

  

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)

  

  

  

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)

  

  

  

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)

  

  

  

非对角线散点图加趋势线

  

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)

  

  

  

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

  可选参数为‘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)

  

  

  

只显示网格下三角图形

  

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)

  

  

  

图形外观设置

  

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)

  

  

  

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)

  

  

  

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

  

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)

  

  

  

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

  

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)

  

  

  

其它一些参数修改

  

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矩阵图的资料请关注盛行IT软件开发工作室其它相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: