gnuplot:从不同的(大数据)文件中绘图

gnuplot: plotting from different (big data) files

我有两个包含多个列和行的文件,比方说

file 1

x11 y11 z11 k11 ...........

x12 y12 z12 k12 ..........

x13 y13 z13 k13 ..........

.

.

.

file 2

x21 y21 z21 k21 ...........

x22 y22 z22 k22 ..........

x23 y23 z23 k23 ..........

.

.

.

我需要绘制文件 1 中的一列,比如说 z 列,以及文件 2 中的 k 列。我不能只用“粘贴”命令合并这两个文件,因为它们太大而无法以这种方式处理。

那么你必须先过滤这两个文件,然后再将它们与paste合并。一种可能性是使用 bash 和进程替换来过滤文件,然后再将它们粘贴在一起。

只有在命令行上,您才能打开 bash 终端,然后输入例如

paste <(cut -d' ' -f 2 first.txt) <(cut -d' ' -f3 second.txt) > paste.txt

这会将文件 first.txt 的第二列和文件 second.txt 的第三列一起粘贴到文件 paste.txt.

要在 gnuplot 中即时执行此操作(参见 示例),请尝试

plot '< exec bash -c "paste <(cut -d'' '' -f 2 first.txt) <(cut -d'' '' -f3 second.txt)"' using 1:2

当然,您必须更改实际的过滤调用以匹配您的确切文件结构,并选择正确的列。此外,还有许多其他方法可以做到这一点,重要的是在 paste 合并文件之前进行过滤。