Gnuplot:数据文件仅包含x和b(x)的splot
我想绘制以下函数的轮廓: f(x,y)=y³*b(x) 我的数据文件如下所示:Gnuplot:数据文件仅包含x和b(x)的splot,plot,gnuplot,Plot,Gnuplot,我想绘制以下函数的轮廓: f(x,y)=y³*b(x) 我的数据文件如下所示: x b(x) -1 10.123 -0.995 10.112 -0.99 10.100 我不确定如何使用正确的splot命令,因为我的数据文件看起来不像(x y z) 这就是我目前的剧本: reset f(x,y)=y³*b(x) set xrange [-6:6] set yrange [-5:5] set isosamples 50 set table '
x b(x)
-1 10.123
-0.995 10.112
-0.99 10.100
我不确定如何使用正确的splot命令,因为我的数据文件看起来不像(x y z)
这就是我目前的剧本:
reset
f(x,y)=y³*b(x)
set xrange [-6:6]
set yrange [-5:5]
set isosamples 50
set table 'test.dat'
splot 'Data.dat' u 1:(b(x)=$2, f(x,y)) -------------------------?
unset table
set contour base
set cntrparam bspline
set cntrparam levels incremental -0.1,0.02,0.1
unset surface
set table 'contour.dat'
splot 'Data.dat' u 1:(b(x)=$2, f(x,y)) -------------------------?
unset table
reset
set xrange [-6:6]
set yrange [-5:5]
unset key
set palette rgbformulae 33,13,10
plot 'test.dat' with image, 'contour.dat' w l lt -1 lw 1.5
直接从文件中的数据创建三维曲面将不起作用,因为它们没有y坐标数据。程序知道如何绘制数据,也知道如何绘制函数,但您必须选择其中之一 要将绘图视为数据绘图,需要展开文件以包含x/y/z数据(请参见“帮助矩阵”)。这在gnuplot之外可能更容易实现 或者,您可以使用gnuplot的“fit”命令和现有数据文件,以某种分析形式重新构建函数b(x)。例如,假设数据的二次拟合就足够了:
b(x) = C0 + C1*x + C2*x*x + C3*x*x*x
C0=C1=1; C2=C3=0;
fit b(x) 'test.dat' using 1:2 via C0,C1,C2,C3
现在你已经有了解析形式,来表示曲面的x和y依赖关系
f(x,y) = b(x) * y*y*y
set contour base
set cntrparam bspline
set cntrparam levels incremental -0.1,0.02,0.1
unset surface
splot f(x,y)