前期介绍了如何利用R语言与Python绘制pairsplot图(可点击链接查看)。由于pairplot图在R与Python中形式不同,有人喜欢在R中追求Python绘图风格,有人喜欢在Python中追求R的绘图风格。因此本文在上期的基础上,进一步利用Python展示如何绘制形式更加丰富的pairplot图。本文使用Jupyter Notebook作为运行环境。
1、数据准备
使用常见的iris数据集。
#加载库
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
from scipy.stats import pearsonr
#读入数据
iris = pd.read_csv("iris.csv")
iris = iris.iloc[:,0:4]
iris.head()复制

2、基本图形
sns.pairplot(iris);
复制

3、定义函数
定义对角线函数
def diagfunc(x, **kws):
ax = plt.gca()
ax.annotate(x.name, xy=(0.2, 0.5),size = 12, xycoords=ax.transAxes)复制
定义相关性系数及p值函数
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()复制
4、不同样式pairplot
样式1
g = sns.PairGrid(iris)
g.map_diag(sns.histplot) #diagonal
g.map_lower(sns.regplot) #Lower
g.map_upper(reg_coef) #Upper复制

样式2
g = sns.PairGrid(iris)
g.map_diag(diagfunc)
g.map_offdiag(sns.scatterplot)
g.set(ylabel=None, xlabel=None)复制

样式3
g = sns.PairGrid(iris)
g.map_diag(diagfunc)
g.map_lower(sns.regplot) #Lower
g.map_upper(sns.kdeplot) #Upper
g.set(ylabel=None, xlabel=None)复制

样式4
g = sns.PairGrid(iris)
g.map_diag(diagfunc)
g.map_lower(sns.regplot) #Lower
g.map_upper(reg_coef) #Upper
g.set(ylabel=None, xlabel=None)复制

5、修改图形元素
修改图形颜色、大小等要素,以及图形保存。
g = sns.PairGrid(iris)
g.figure.set_size_inches(10, 10) #大小设置
g.map_diag(diagfunc)
g.map_lower(sns.scatterplot,s =25, color = "blue") #Lower
g.map_upper(sns.kdeplot, cmap = "Spectral_r") #Upper
g.set(ylabel=None, xlabel=None)
g.fig.savefig("seabon1.pdf");复制

绘制形式丰富的pairplot图,其核心要点在对于上三角、下三角以及对角线图形的控制。此外,关于如何修改每一个子图的颜色,可参考Stack Overflow[1]上的一个不错的回答。
6、其他
关于pairplot绘图的更多细节可在seaborn官网[2]进行查看。关于pairplot的R语言及Python绘图可进一步阅读R语言与Python绘制pairsplot,以及R语言绘图|散点图矩阵。
参考资料
seaborn.pairplot() changing the color of each graph: https://stackoverflow.com/questions/59631092/seaborn-pairplot-changing-the-color-of-each-graph
[2]seaborn.pairplot: https://seaborn.pydata.org/generated/seaborn.pairplot.html?highlight=pairplot#seaborn.pairplot,
文章转载自日常分享的小懒猫,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
python排序sort()和sorted()区别
wzf0072
64次阅读
2025-04-09 19:57:46
AI与我共创WEB界面
布衣
54次阅读
2025-04-14 22:13:51
解决pyqt5 textbrowser控件超链接锚点问题
zayki
34次阅读
2025-04-27 16:58:59
python中标识符的命名规则和命名规范
周同学带您玩AI
34次阅读
2025-04-21 10:34:44
python 实现消费者优先级队列
天翼云开发者社区
28次阅读
2025-04-25 11:08:21
优雅遍历和删除特定开头的key
陌殇流苏
24次阅读
2025-04-25 12:17:03
《深入剖析Python的生成器表达式与列表推导式:探寻代码背后的哲学与艺术》
程序员阿伟
21次阅读
2025-04-27 16:22:14
python中的常见数据类型
周同学带您玩AI
12次阅读
2025-04-21 10:34:43
python自动更新dns A记录
godba
11次阅读
2025-04-23 11:19:04
Python运维神器:这些模块让你事半功倍
韩公子的Linux大集市
11次阅读
2025-04-09 11:13:18