我有以下数据文件:
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)
我可以将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'),使用标题名称语法类似于使用列号语法的方式。有什么办法吗?
我发现了一种方法。这两个命令是等效的:
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)
达到同样的效果。