如何在gnuplot中绘制导入数据的函数图像?

6

如果我有一个包含多个数据点的文件,我该如何绘制它们的函数图像呢?例如,假设我有一个包含两列 xy 的文件,并且我想将 sin(y) 作为 1/x 的函数进行绘制。

1个回答

6

试试这个:

plot "-" u (1/$1):(sin($2)) w l
    2.00000    0.16104
    3.00000    0.15604
    4.00000    0.40055
    5.00000    0.09972
    e

或者,如果不使用数据文件,则可以使用参数化模式,该模式在此处描述。

编辑

使用此数据文件Data.csv

 0.00000    0.33371
 1.00000    0.13034
 2.00000    0.16104
 3.00000    0.15604
 4.00000    0.40055
 5.00000    0.09972
 6.00000    0.25204
 7.00000   -0.34172
 8.00000   -0.04733
 9.00000   -0.27211
10.00000    0.10229
11.00000   -0.30608
12.00000    0.11006
13.00000   -0.44390
14.00000   -0.16963
15.00000    0.03208
16.00000    0.32431
17.00000    0.15424
18.00000    0.16468
19.00000    0.24410
20.00000    0.34961

我可以运行这个脚本:
f(x) = kappa*x**2

fit f(x) "Data.csv" u (log($1)):(sin($2)) via kappa
plot "Data.csv" u 1:(sin($2)), f(x) w l

这给了我这张图:

上面脚本和数据文件的图

虽然拟合结果毫无意义^^。

你是否在你的拟合中漏掉了一些括号?!


它为什么不能与log一起使用?我尝试通过kappa使用“fit g(x) 'out.dat' using log($1):log($2)”命令。我不想使用对数刻度选项。 - Yotam
@Yotam,请问错误信息是什么?在我的机器上,使用这种形式拟合数据很好。 - Woltan
是的,我漏掉了括号。我写成了“log($1)”,但我需要写成“(log($1))”。 - Yotam

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接