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

如何修正Gnuplot 3D图坐标轴范围以显示数据最大值?

Gnuplot 3D图形垂直坐标轴范围调整方案

问题说明

我使用Gnuplot绘制3D图形,当前执行的命令如下:

set ticslevel 0
set dgrid3d 30,30
set style lines 100 lt 5 lw 0.5
set pm3d hidden3d 100
set grid
plot "./1.txt" using 2:3:4 with pm3d

但垂直坐标轴未显示数据第四列中的最大值(例如该列存在数值4),求调整坐标轴范围的可行方法。

数据示例(部分):

1 1.4915 -0.1 1 0.0542767
2 1.4915 1.9 0 0
3 1.4915 3.9 1 0.0542767
...
152 7.3895 37.9 3 0.0328657

解决方案

1. 手动指定z轴范围

直接用set zrange命令定义垂直轴的取值区间,确保包含数据中的最大值。比如你的数据第四列最大值为4,可设置:

set zrange [0:4]

若想避免数据紧贴轴边缘,可留少量余量,例如set zrange [0:4.2]。

2. 强制自动适配全量数据范围

如果不确定数据最大值,使用set zrange [*:*]命令,强制Gnuplot自动计算并包含所有数据的z值范围:

set zrange [*:*]

该命令会覆盖默认的自动缩放逻辑,确保所有原始数据点都在坐标轴范围内显示。

3. 结合插值命令的注意事项

由于你使用了set dgrid3d进行数据插值,插值后的z值可能与原始数据有差异,但只要原始数据包含最大值4,设置正确的z轴范围即可确保其被显示。建议将set zrange命令放在set dgrid3d之后,确保插值后的范围也被覆盖。

修改后的完整命令示例

手动指定范围版本

set ticslevel 0
set dgrid3d 30,30
set style lines 100 lt 5 lw 0.5
set pm3d hidden3d 100
set grid
set zrange [0:4]
plot "./1.txt" using 2:3:4 with pm3d

自动适配范围版本

set ticslevel 0
set dgrid3d 30,30
set style lines 100 lt 5 lw 0.5
set pm3d hidden3d 100
set grid
set zrange [*:*]
plot "./1.txt" using 2:3:4 with pm3d

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 08:45:19