随笔 - 383  文章 - 0  评论 - 0  阅读 - 35557 

1. jointplot 两变量图

 数据分析中常用做图的方式实现相关性分析,即X轴设置为变量A,Y轴设置为变量B,做散点图,由于散点图中点的叠加显示,往往还需要关注每个变量自身的分布情况,jointplot把描述变量的分布图和变量相关的散点图组合在一起,是相关性分析最常用的工具,图片上还能展示回归曲线,以及相关系数。

import statsmodels.api as sm
import seaborn as sns
sns.set(style="darkgrid")
data = sm.datasets.ccard.load_pandas().data
g = sns.jointplot('AVGEXP', 'AGE', data=data, kind="reg",
                 xlim=(0, 1000), ylim=(0, 50), color="m")

 本例中使用statsmodels库的ccard数据,分析了其中两个数值类型变量的相关性,使用xlim和ylim设置了图片显示范围,忽略了离群点,kind参数可设置做图方式:scatter散点图,kde密度图,hex六边形图等,本例中选择reg画出了线性回归图。

2. pairplot多变量图

 如果用对N个变量的相关性做散点图,用maplotlib需要做NxN个图,用pairplot函数调用一次即可实现,其对角线上是直方图,其余都是两两变量的散点图,不仅简单,还能组合在一起作对比。

data = sm.datasets.ccard.load_pandas().data
sns.pairplot(data, vars=['AGE','INCOME', 'INCOMESQ','OWNRENT'])

 

 图中可以看到,数据类型INCOME与INCOMESQ呈强相关,AGE与INCOME也有一定相关趋势,对角线上的图对应的是每个因素与其自身的对比,图中以直方图显示了该变量的分布。

3. factorplot两变量关系图

 factorplot用于绘制两维变量的关系图,用kind可指定其作图类型,包括:point, bar, count, box, violin, strip等。

data = sm.datasets.fair.load_pandas().data
sns.factorplot(x='occupation', y='affairs', hue='religious', data=data)

4. FacetGrid结构化绘图网格

 FacetGrid可以选择任意的做图方式,以及自定义的做图函数,通常包含两部分,FacetGrid部分指定了数据集,行,列,map部分指定做图方式,以及相应参数。

g = sns.FacetGrid(tips, col = 'time', row = 'smoker') # 按行和列的分类做N个图
g.map(plt.hist, 'total_bill', bins = 10) # 指定做图方式

 可以看到无论是连续图,还是分类图,无论是用FacetGrid还是barplot都是将多个特征放在同一张图片上展示,其差别一方面在于观察角度不同,另一方面也取决于数据自身的类型。

posted on   xieyan0811  阅读(204)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示