如何解决Gnuplot 从右数第二个或最后一个 coulmn
我希望使用 Gnuplot 从最右边的列开始绘制第二、第三和第四列。在 awk 中,我们可以使用 ($NF-1)。但是在 Gnuplot 中,不确定如何使用“使用”从最右边的列中指定一列。
是否可以在 Gnuplot 中使用 awk 来绘制右列第 3 行与右列第 4 行?或者这是我们必须使用shell脚本的东西?
我有很多长文本文件要绘制,所以我无法创建新的文本文件来使用 awk 重写文件,然后使用 Gnuplot。那太费时间了。我希望使用 Gnuplot 从右数第 2、第 3 和第 4 处绘制图。
解决方法
您可以使用 STATS_columns
作为列数并在绘图中使用它
例如
nf = int(STATS_columns)
plot data.dat using 1:nf-4
,
不需要awk。如果您执行 stats
,您可以使用 every ::0::0
将其限制为一行。它应该很快。请尝试以下完整示例:
代码:
### plotting columns from right
reset session
$Data <<EOD
11 21 31 41 51 61 71
12 22 32 42 52 62 72
13 23 33 43 53 63 73
14 24 34 44 54 64 74
15 25 35 45 55 65 75
16 26 36 46 56 66 76
17 27 37 47 57 67 77
EOD
stats $Data u 0 every ::0::0 nooutput
ColMax = STATS_columns
ColFromRight(col) = column(ColMax-col+1)
plot $Data u (ColFromRight(3)):(ColFromRight(4)) w lp pt 7
### end of code
结果:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。