Gnuplot:如何结合dgrid3d绘制曲面与正常显示的点
解决Gnuplot中dgrid3d曲面与点叠加显示的问题
核心原因
set dgrid3d会对所有后续的3D绘图命令生效,包括点数据的绘制。它会尝试对点数据进行网格插值重采样,导致原本离散的点被分散、位置偏移(比如被插值到曲面下方)。
解决方案:拆分绘图流程,隔离dgrid3d的作用范围
将曲面绘制和点绘制分开执行,让dgrid3d仅作用于曲面数据:
- 配置基础绘图参数(视角、坐标轴标签等)
- 启用
dgrid3d并绘制曲面 - 关闭
dgrid3d,再叠加绘制点数据
示例脚本
# 基础配置 set view 60, 30 # 设置视角 set xlabel "X" set ylabel "Y" set zlabel "Z" set title "曲面与点叠加显示" # 启用dgrid3d绘制曲面 set dgrid3d 50,50 qnorm 2 splot "functionVisu.dat" with pm3d title "曲面" # 用pm3d或surf渲染曲面 # 关闭dgrid3d,绘制原始点 unset dgrid3d replot "pointVisu.dat" with points pt 7 ps 1.5 lc rgb "red" title "采样点"
额外优化建议
- 如果点仍有轻微偏移,检查两个数据文件的XYZ坐标系是否完全一致(比如数据精度、单位是否统一)
- 可以用
set hidden3d开启隐藏线消除,让曲面和点的层次更清晰 - 调整点的样式(
pt参数)和大小(ps参数),避免被曲面遮挡
内容的提问来源于stack exchange,提问作者Pierre-Laurent
相关产品推荐
相关产品推荐

