我有以下数据文件:
denst densu densd denss
3 1 1 1
4 1 1.5 1.5
5 1 2.5 1.5
我可以将densu
(denst
)描绘为:
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')
这样的事情,使用标题名称语法,类似于我如何使用列号语法。有没有办法做到这一点?
答案 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'))
达到同样的效果。