You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中是否存在与R的GGally::ggpairs功能等价的可视化工具?

Python复现R GGally::ggpairs可视化效果方案

Python可以完美复现GGally::ggpairs的混合变量关联可视化效果,主流实现方案基于seaborn可视化库,支持数值、分类两种数据类型,仅需少量代码即可展示所有变量间的交互关系,同时支持全图各区域的图表类型、样式自定义,灵活度和R版本完全匹配。

以下是和你给出的R代码逻辑完全对齐的Python实现:

# 导入依赖库
import seaborn as sns
import pandas as pd
import matplotlib.pyplot as plt

# 自定义配色,和示例R代码配色一致
cols = ["#4c86ad", "#f5dfb3"]

# 替换为实际读入的保险数据集,和R代码的dplyr::select逻辑对齐
plot_data = insurance_data[["age", "bmi", "smoker", "charges"]]

# 初始化配对网格
g = sns.PairGrid(plot_data)

# 下三角配置:连续变量对用散点图,连续+分类混合对用箱线图
g.map_lower(sns.scatterplot, color=cols[0], alpha=0.6)
g.map_lower(sns.boxplot, fill=False, color="black")

# 上三角配置:连续变量对展示相关系数,混合对用密度图
def show_cor(x, y, **kwargs):
    corr = round(x.corr(y), 2)
    ax = plt.gca()
    ax.text(0.5, 0.5, f"r = {corr}", ha="center", va="center", transform=ax.transAxes, color=cols[0])
g.map_upper(show_cor)
g.map_upper(sns.kdeplot, color="black")

# 对角线配置:连续/分类变量均用柱状图
g.map_diag(plt.hist, color=cols[1], edgecolor="black", bins=18)

# 调整布局后展示
plt.tight_layout()
plt.show()

如果不需要高度自定义样式,仅需要基础版的配对关系图,一行代码即可实现:

sns.pairplot(plot_data, hue="smoker")

如果需要交互式可视化效果,可使用plotly库的scatter_matrix实现,支持悬浮查看数值、缩放、筛选等交互功能:

import plotly.express as px
fig = px.scatter_matrix(plot_data, color="smoker", color_discrete_sequence=cols)
fig.show()

内容的提问来源于stack exchange,提问作者abdelgha4

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 16:09:02