gnuplot绘制指定区域等高线未抵达边界的问题求助
解决gnuplot等高线在y=0轴处的间隙问题
问题核心原因:当你直接在splot中限定y范围为[0:3]时,gnuplot仅使用该范围内的数据点计算等高线。而vr-cs=0的等高线实际交点可能落在y<0的区域,导致0:3范围内无法生成连接到y=0轴的完整线段,从而出现间隙。
以下是两种可行的解决方法:
方法1:全局计算等高线(简洁方案)
通过set contour all让gnuplot基于全部数据点计算等高线,再单独限定显示的坐标轴范围:
set view map set contour all # 关键:基于完整数据集计算等高线,不受显示范围限制 set cntrparam levels discrete 0 set xrange [0:8] set yrange [0:3] # 仅限定最终显示的y范围 splot "vr-cs101.gnu" w l nosurface notitle
方法2:预计算等高线到临时文件
先在包含y负半轴的范围内计算完整等高线,导出到临时文件后,再绘制并限定显示范围:
set view map set contour set cntrparam levels discrete 0 # 第一步:计算完整等高线并导出到临时文件 set yrange [-3:3] splot [0:8] "vr-cs101.gnu" w l nosurface notitle, "" with table "contour_temp.dat" # 第二步:绘制临时文件,限定显示y范围为0-3 set yrange [0:3] plot "contour_temp.dat" w l notitle
两种方法都能在仅显示[0:8][0:3]区域的前提下,让等高线完整延伸至y=0轴。
内容的提问来源于stack exchange,提问作者bedwere
相关产品推荐
相关产品推荐

