在Gnuplot中,当我按标题名称绘制时,如何绘制两列的总和

时间:2017-08-13 17:45:39

标签: plot gnuplot

我有以下数据文件:

denst densu densd denss
3     1     1     1
4     1     1.5   1.5
5     1     2.5   1.5

我可以将densudenst)描绘为:

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

这是非常方便的语法。但是,如果我想绘制densudensd的总和,就denst来说,唯一的方法就是:

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

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

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

我想做plot 'file.txt' u 1:($'densu'+$'densd')这样的事情,使用标题名称语法,类似于我如何使用列号语法。有没有办法做到这一点?

1 个答案:

答案 0 :(得分:5)

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

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

你无法做到

plot 'file.txt' u 'denst':($'densu'+$'densd')

但你可以做到

plot 'file.txt' u 'denst':(column('densu')+column('densd'))

达到同样的效果。