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

如何用twinx()将Matplotlib次级Y轴设为主轴的1/10?

解答

ax2 = ax.twinx()/10这种写法完全不可行——ax.twinx()返回的是Matplotlib的Axes对象,对Axes执行除法操作会直接触发类型错误,根本达不到设置轴范围的目的。

要实现次级Y轴范围为主轴的1/10,你可以按以下方式修改代码:

  1. 先完成两条曲线的绘制,让Matplotlib自动计算或确认主轴的Y轴范围
  2. 获取主轴的范围值,将其除以10后赋值给次级轴

修改后的完整代码示例:

import matplotlib.pyplot as plt
import seaborn as sns

# 初始化画布和主轴
fig, ax = plt.subplots()
# 创建次级Y轴
ax2 = ax.twinx()

# 绘制两条折线
sns.lineplot(data=df["A"], ax=ax)
sns.lineplot(data=df["B"], ax=ax2)

# 获取主轴Y轴的范围
main_ylim = ax.get_ylim()
# 设置次级轴范围为主轴的1/10
ax2.set_ylim([val / 10 for val in main_ylim])

plt.show()

比如主轴自动计算出的范围是0-100,次级轴就会被设置为0-10,完全符合你要的1/10比例。如果是手动设置了主轴范围(比如ax.set_ylim(0, 100)),同样可以用这个方法同步次级轴的比例范围。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 13:40:36