可以定义对输入数据进行操作的函数

时间:2011-11-28 13:04:47

标签: function input gnuplot

我想知道Gnuplot中是否有一些解决方法来交换类似

的内容
plot  input.dat using ($1/2):($2*2) axis x1y1 w lp

plot  input.dat using func1($1,$2):func2($1,$2) axis x1y1 w lp

func1(x,y) = x/2; func2(x,y) = y*2;

我想在绘图之前对输入数据(线)进行后期处理。

2 个答案:

答案 0 :(得分:9)

您可以使用非常接近您建议的语法。定义如下函数:

func1(x) = x / 2
func2(x) = x * 2

并像这样使用它们:

 plot "input.dat" using (func1($1)):(func2($2))

情节陈述中的括号结是必要的。

您可以定义多个变量的函数:

func3(x, y) = x * y

类似地使用它们:

plot "input.dat" using (func1($1)):(func3($1, $2))

答案 1 :(得分:3)

您可以在gnuplot中使用函数。记录here

举个例子:
使用数据文件 Data.csv

0.65734 0.59331
0.60033 0.76434
0.66493 0.43881
0.42811 0.42567
0.01783 0.57760

您可以使用以下函数绘制数据:

func1(x) = x/2
func2(x,y) = y*2

plot "Data.csv" u (func1($1)):(func2($1, $2)) w l

请注意func1($1)func2($1, $2)周围的“额外”括号。这些告诉gnuplot评估它们中的表达式。