如果你有两个像这样结构的文件
1 1.2
2 1.3
3 1.4
4 1.5
5 1.6
6 1.7
你可以通过
简单地添加它们p "<paste file1.txt file2.txt" u 1:($2+$4) w l
但是如果第二个文件的结构点较少,例如
1 1.2
3 1.4
5 1.6
7 1.8
这不再是一个选项,因为两个文件的长度不同。我的第一个选择是用vim手动删除不必要的点,但是如果有一个简单的gnuplot解决方案,我想知道有数百个文件。
我想忽略只出现在其中一个文件中的点。应添加两个文件中出现的点。
根据@ TomFenech的建议,我使用awk
结合gnuplot的every
来绘制奇数点
plot '<awk ''FNR==NR {a[FNR]=$1; cnt=FNR} {x[$1] += $2} END {for(i=1; i<=cnt; ++i) print a[i],x[a[i]]}'' test1.txt test2.txt' u 1:2 every 2::1 w l
答案 0 :(得分:2)
您可以使用smooth frequency
选项绘制具有相同x
plot '<cat file1.txt file2.txt' using 1:2 smooth frequency
修改强>
累积 - &gt;频率
答案 1 :(得分:2)
您可以使用awk组合这两个文件:
plot '<awk ''{a[$1]+=$2} END {for (i in a) print i, a[i]}'' file1.txt file2.txt'
如果您想以更复杂的方式组合文件,使用awk可能更灵活。