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

使用双Y轴绘图时无法通过plt.xticks旋转xticks的问题

双Y轴图表中x轴刻度旋转无效的解决办法

当使用twinx()创建双Y轴后,plt.xticks(rotation=45)失效的核心原因是:此时当前活跃的绘图轴是你创建的第二个轴(ax2),而x轴的刻度实际上由第一个轴(ax)控制,全局的plt.xticks()默认作用于当前活跃轴,自然无法改变x轴刻度的旋转角度。

解决方法很直接,直接针对原始轴ax来设置x轴刻度的旋转:

修改后的完整代码

plt.figure()
ax = sns.boxplot(
    data=df,
    x='x',
    y='y',
)

ax2 = ax.twinx() 
sns.scatterplot(
    x='x',
    y='y',
    ax=ax2,
    data=df2,
    legend=False,
)

plt.tight_layout()
sns.despine(offset=10, trim=True, bottom=False, right=False)

# 直接操作原始轴ax的x刻度旋转
ax.tick_params(axis='x', rotation=45)
# 也可以用另一种写法:ax.set_xticklabels(ax.get_xticklabels(), rotation=45)

plt.show()

补充说明

双Y轴图表中两个轴共享x轴,但x轴的所有显示属性(包括刻度旋转、标签样式等)都由最初创建的那个轴(也就是第一个调用绘图函数生成的ax)管理。通过twinx()生成的第二个轴仅负责右侧Y轴的内容,无权修改x轴的属性,因此必须直接操作原始轴才能调整x轴刻度。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 14:30:53