Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Gnuplot:数据文件仅包含x和b(x)的splot_Plot_Gnuplot - Fatal编程技术网

Gnuplot:数据文件仅包含x和b(x)的splot

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 '

我想绘制以下函数的轮廓:

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 '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)