在Gnuplot中,按标题名称进行绘图时,如何绘制两列的总和

and*_*epd 0 plot gnuplot

我有以下数据文件:

denst densu densd denss
3     1     1     1
4     1     1.5   1.5
5     1     2.5   1.5
Run Code Online (Sandbox Code Playgroud)

我可以将densudenst)绘制为:

plot 'file.txt' u 'denst':'densu'

这是非常方便的语法。但是,如果我想绘制和的densu和的总和densd,就denst我能做到的唯一方法是:

set key autotitle columnhead 告诉gnuplot第一行是标题而不是数据

plot 'file.txt' u 1:($2+$3) 绘制

问题是我该如何使用这样的列值进行操作,但要使用名称符号?实际文件是一个具有约40列的csv,手动计数哪个列是哪个数字非常繁琐,因此我可以使用$n语法对列数据进行数学运算。

我想做类似的事情plot 'file.txt' u 1:($'densu'+$'densd'),使用标题名称语法类似于使用列号语法的方式。有什么办法吗?

and*_*epd 5

我发现了一种方法。这两个命令是等效的:

plot 'file.txt' u 1:($2+$3)
plot 'file.txt' u 1:(column(2)+column(3))
Run Code Online (Sandbox Code Playgroud)

你做不到

plot 'file.txt' u 'denst':($'densu'+$'densd')
Run Code Online (Sandbox Code Playgroud)

但是你可以做

plot 'file.txt' u 'denst':(column('densu')+column('densd'))
Run Code Online (Sandbox Code Playgroud)

达到同样的效果。