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

如何在Plots中为主坐标轴显示网格,不为twinx副坐标轴显示?

修复Plots双y轴网格消失问题

问题核心:给twinx副轴设置全局grid=false时,会覆盖主轴的grid=true配置,导致所有y网格被关闭。解决思路是仅关闭副轴的y网格,而非全局关闭所有网格,或手动恢复主轴的y网格状态。

修复方案一:单独控制副轴y网格

修改副轴配置,用ygrid=false替代grid=false,仅关闭副轴的y网格,主轴y网格不受影响:

using Plots

# 生成数据
x = 1:10
y1 = rand(10)
y2 = rand(10) .* 100  # 让y2处于不同刻度范围

# 绘制主图并开启网格
plot(x, y1, color=:blue, label="y1", yticks=[0.2, 0.4, 0.6, 0.8], grid=true)
# 添加双y轴副图,仅关闭自身y网格
plot!(twinx(), x, y2, color=:red, label="y2", yticks=true, ygrid=false, legend=:topleft)

修复方案二:手动恢复主轴y网格

如果必须使用grid=false,可在添加副轴后手动重新开启主图的y网格:

using Plots

x = 1:10
y1 = rand(10)
y2 = rand(10) .* 100

# 先创建主图并保存对象
p = plot(x, y1, color=:blue, label="y1", yticks=[0.2, 0.4, 0.6, 0.8], grid=true)
# 添加双y轴副图并关闭全局网格
plot!(twinx(), x, y2, color=:red, label="y2", yticks=true, grid=false, legend=:topleft)
# 手动恢复主图的y网格
plot!(p, ygrid=true)

原理说明

Plots.jl中,全局grid参数会作用于整个绘图的所有轴;而ygrid参数可单独控制对应轴的y方向网格显示状态,以此精确区分主副轴的网格配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 03:35:17