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
合并文件之前进行过滤。
我有两个包含多个列和行的文件,比方说
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
合并文件之前进行过滤。