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

gnuplot多图绘制Y轴范围不一致,如何统一设为[0:1]?

解决Gnuplot多子图Y轴范围统一问题

要让所有子图的Y轴范围都固定在[0:1],你需要在data.gp脚本里补充或调整以下几个关键设置:

1. 全局锁定Y轴范围

在开启multiplot(多子图)模式之前,添加这条全局设置:

set yrange [0:1]

这个命令会直接把所有子图的Y轴上下限强制设为0和1,彻底覆盖gnuplot默认的“根据每个子图数据自动缩放轴范围”的逻辑。

2. 禁止自动调整Y轴(可选但更稳妥)

如果担心个别子图的绘制命令会偷偷覆盖你设置的Y范围,可以再加一条:

set autoscale yfix

它会强制保持你指定的yrange,不管子图里的数据极值是多少,都不会自动调整轴的范围。

3. 清理局部Y范围设置

检查你脚本里的multiplot代码块,如果有针对某个子图单独设置set yrange的命令,一定要删掉这些局部设置——不然全局的统一范围会被这些局部设置覆盖,白忙活一场。

给你个完整的示例脚本片段参考:

# 基础样式设置(保留你原来的border等设置)
set border linewidth 1
set style data linespoints

# 核心:统一所有子图的Y轴范围
set yrange [0:1]
set autoscale yfix

# 开启多子图布局(这里假设你是2行1列的布局,可根据你的需求调整)
set multiplot layout 2,1 rowsfirst

# 绘制第一个子图(比如取data1.dat的第3列y2)
plot 'data1.dat' using 1:3 title 'data1 - y2'

# 绘制第二个子图(取data2.dat的第3列y2)
plot 'data2.dat' using 1:3 title 'data2 - y2'

unset multiplot

另外提一句:你的原始数据里y2、y4列的数值都大于1,设置yrange [0:1]后,超出1的部分会被截断显示在Y轴顶部。如果需要控制超出范围的数据点是否显示,可以加set clip points(裁剪掉超出的点)或者set clip no points(保留点但截断连线)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 09:19:26