#导入本帖要用到的库,声明如下: 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==0else'versicolor'if i==1else'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'])
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)