Gnuplot 3D - 绘制散点和它们之间的表面*和*线

Gnuplot 3D - plot scatter points and a surface *and* lines between the them

我一直找不到制作标题中描述的情节的方法,如果可能的话,有人知道怎么做吗?我想从一个函数中绘制一个曲面,从一个文件中绘制点,并在点和曲面之间绘制线条。下面的 link 是一张图片,其中包含我想做的事情的示例,取自针对相同任务(但针对不同的绘图程序)的 Whosebug 问题。

您可以在 gnuplot 的 using 语句中进行计算。对于我使用 vectors 绘图样式的线条,使用 arrowstyle variable(或 linecolor variable)您可以根据 dz 值 select 不同的颜色:

set style arrow 1 linecolor rgb 'red' nohead
set style arrow 2 linecolor rgb 'green' nohead

splot f(x,y) with lines, \
    'points.dat' using 1:2:(f(,)):(0):(0):(dz=-f(,)):(dz < 0 ? 1 : 2) with vectors arrowstyle variable,\
    '' using 1:2:3 with points pt 7 ps 5

我不确定,这会给 gnuplot 4.6 带来问题。对于您的情况,您还可以使用 linecolor variablelinecolor rgb variable 来更改垂直线的颜色:

splot f(x,y) with lines, \
    'points.dat' using 1:2:(f(,)):(0):(0):(dz=-f(,)):(dz < 0 ? 0xff0000 : 0x00ff00) with vectors nohead linecolor rgb variable lw 5,\
    '' using 1:2:3 with points pt 7 ps 5