本文主要展示如何利用R语言与Python绘制pairsplot图。pairsplot,顾名思义,其中的pairs为成对、一双的含义,即两两变量之间的关系图。主要参考包括Stack Overflow[1]、如何使用python绘制pais相关系数图[2]、R语言绘图|散点图矩阵[3]。
1、R语言绘制
1.1 psych包绘制
library(ggplot2)
head(iris)
psych::pairs.panels(iris[1:4], stars = TRUE, ci = TRUE, lm = TRUE, pch = 21)
1.2 GGally包绘制
GGally::ggpairs(iris[1:4]) + theme_bw() + theme(panel.grid = element_blank())
2、Python绘制
#加载相关package
import warnings
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
from scipy.stats import pearsonr
warnings.filterwarnings("ignore")
2.1 seaborn自带的pairplot函数
#使用iris数据集
iris = pd.read_csv("iris.csv")
iris = iris.iloc[:,0:4]
iris.head()
pairplot = sns.pairplot(iris)
pairplot.figure.set_size_inches(8, 8)
pairs.fig.savefig("pairplot.pdf")
2.2 绘制R形式的parisplot
def reg_coef(x,y,label = None, color = None, **kwargs):
ax = plt.gca()
ax.figure.set_size_inches(8, 8)
r,p = pearsonr(x,y)
ax.annotate('Corr :{:.3f}'.format(r), xy=(0.5,0.5), xycoords='axes fraction', ha='center')
ax.annotate('P_value :{:.3f}'.format(p), xy=(0.5,0.4), xycoords='axes fraction', ha='center')
ax.set_axis_off()
pairs = sns.PairGrid(iris)
pairs.map_diag(sns.distplot) #diagonal
pairs.map_lower(sns.regplot) #Lower
pairs.map_upper(reg_coef) #Upper
pairs.fig.savefig("seabon.pdf") #save to pdf
3、其他
其他绘图方法可进一步阅读公众号其他文章。
如有帮助请多多点赞哦!
参考资料
Add regression line in the scatter matrix of pandas: https://stackoverflow.com/questions/59326121/add-regression-line-in-the-scatter-matrix-of-pandas
[2]如何使用python绘制pais相关系数图: https://mp.weixin.qq.com/s/MlNuEn0XDIb6awS0pJxaVg
[3]R语言绘图|散点图矩阵: https://mp.weixin.qq.com/s/WObnLNS1pQBWMEcQlONWsw
文章转载自日常分享的小懒猫,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。