Python中seaborn如何绘制矩阵图(python,seaborn,开发技术)

时间:2024-05-10 11:30:48 作者 : 石家庄SEO 分类 : 开发技术
  • TAG :

本文内容速览

Python中seaborn如何绘制矩阵图

Python中seaborn如何绘制矩阵图

1、绘图数据准备

还是使用鸢尾花iris数据集

#导入本帖要用到的库,声明如下:importmatplotlib.pyplotaspltimportnumpyasnpimportpandasaspdfrompandasimportSeries,DataFramefromsklearnimportdatasetsimportseabornassns#导入鸢尾花iris数据集(方法一)#该方法更有助于理解数据集iris=datasets.load_iris()x,y=iris.data,iris.targety_1=np.array(['setosa'ifi==0else'versicolor'ifi==1else'virginica'foriiny])pd_iris=pd.DataFrame(np.hstack((x,y_1.reshape(150,1))),columns=['sepallength(cm)','sepalwidth(cm)','petallength(cm)','petalwidth(cm)','class'])#astype修改pd_iris中数据类型object为float64pd_iris['sepallength(cm)']=pd_iris['sepallength(cm)'].astype('float64')pd_iris['sepalwidth(cm)']=pd_iris['sepalwidth(cm)'].astype('float64')pd_iris['petallength(cm)']=pd_iris['petallength(cm)'].astype('float64')pd_iris['petalwidth(cm)']=pd_iris['petalwidth(cm)'].astype('float64')#导入鸢尾花iris数据集(方法二)#importseabornassns#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调色盘

importpalettableg=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轴方向选取相同子集

importpalettableg=sns.pairplot(pd_iris,hue='class',palette=palettable.cartocolors.qualitative.Bold_9.mpl_colors,vars=['sepallength(cm)','sepalwidth(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轴方向选取不同子集

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

Python中seaborn如何绘制矩阵图

非对角线散点图加趋势线

importpalettableg=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。

importpalettableg=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如何绘制矩阵图

只显示网格下三角图形

importpalettableg=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如何绘制矩阵图

图形外观设置

importpalettableg=sns.pairplot(pd_iris,hue='class',palette='Set1',markers=['$\clubsuit$','.','+'],#散点图的markerplot_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"]},#设置markerdiag_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如何绘制矩阵图

 </div> <div class="zixun-tj-product adv-bottom"></div> </div> </div> <div class="prve-next-news">
本文:Python中seaborn如何绘制矩阵图的详细内容,希望对您有所帮助,信息来源于网络。
上一篇:怎么解决PHP单继承问题下一篇:

8 人围观 / 0 条评论 ↓快速评论↓

(必须)

(必须,保密)

阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18