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

如何移除Seaborn JointGrid的左右边缘边框?

解决Seaborn JointGrid移除左右边缘边框的问题

要移除JointGrid图形的左右边缘边框,需要分别对**主散点图轴(g.ax_joint)和y轴边际图轴(g.ax_marg_y)**调用sns.despine()并指定对应参数——默认的despine()只会作用于当前活跃轴,无法覆盖所有子轴。

修改后的完整代码

import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

# 加载示例数据
penguins = sns.load_dataset('penguins')

# 初始化JointGrid,设置子图间距为0
g = sns.JointGrid(data=penguins, x='bill_length_mm', y='bill_depth_mm', space=0) 

# 绘制主散点图
g.plot_joint(sns.scatterplot)
# 绘制边际直方图
g.plot_marginals(sns.histplot, kde=True, bins=250, color='r')
# 移除x轴边际图
g.ax_marg_x.remove()

# 移除主图的左、右、顶部边框
sns.despine(ax=g.ax_joint, left=True, right=True, top=True)
# 移除y轴边际图的左、右边框(保留底部边框对齐主图)
sns.despine(ax=g.ax_marg_y, left=True, right=True)

plt.show()

关键说明

  • 针对g.ax_joint(主散点图轴):通过left=True, right=True移除左右边框,top=True确保顶部边框也被移除;
  • 针对g.ax_marg_y(y轴边际直方图轴):移除左右边框,保留底部边框以和主图x轴对齐,避免布局混乱;
  • 必须指定ax参数明确作用的轴对象,否则despine()无法处理JointGrid的所有子轴。

内容的提问来源于stack exchange,提问作者ai-py

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 08:20:18