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

如何旋转Seaborn JointGrid的轴文本?plt.figure为何对其无效?

Seaborn JointGrid:x轴文本旋转与尺寸设置问题解决

一、旋转x轴文本解决重叠

JointGrid包含三个子轴:主绘图区(ax_joint)、顶部边际直方图(ax_marg_x)、右侧边际直方图(ax_marg_y)。要解决x轴文本重叠,需针对主图和顶部边际图的x轴标签设置旋转:

方式1:批量设置所有相关轴的文本

import seaborn as sns
import matplotlib.pyplot as plt

g = sns.JointGrid(x='u', y='t', data=tdata)
g.plot(sns.scatterplot, sns.histplot)

# 旋转45度,可根据需求调整角度
plt.setp(g.ax_joint.get_xticklabels(), rotation=45)
plt.setp(g.ax_marg_x.get_xticklabels(), rotation=45)

plt.show()

方式2:单独设置每个轴的文本

g = sns.JointGrid(x='u', y='t', data=tdata)
g.plot(sns.scatterplot, sns.histplot)

# 主图x轴文本旋转
g.ax_joint.tick_params(axis='x', labelrotation=45)
# 顶部边际图x轴文本旋转
g.ax_marg_x.tick_params(axis='x', labelrotation=45)

plt.show()

如果只需要主图的x轴文本旋转,只操作g.ax_joint即可。

二、解决plt.figure尺寸设置无效的问题

plt.figure()会创建新的画布,但JointGrid会自动生成专属画布,所以之前的设置不会生效。有两种可行方案:

方案1:创建JointGrid时直接指定尺寸

在JointGrid的构造参数中加入figsize,直接定义画布大小:

g = sns.JointGrid(x='u', y='t', data=tdata, figsize=(10, 8))
g.plot(sns.scatterplot, sns.histplot)
plt.show()

方案2:创建后修改画布尺寸

如果已经初始化了JointGrid,可以通过其fig属性调整尺寸:

g = sns.JointGrid(x='u', y='t', data=tdata)
g.plot(sns.scatterplot, sns.histplot)
# 设置画布为10x8英寸
g.fig.set_size_inches(10, 8)
plt.show()

内容的提问来源于stack exchange,提问作者Jason.Z

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 11:35:20