我目前正在从多个文件中绘制图形。数据基本上是时间序列,第一列带有时间戳,其他列具有多次测量。时间戳并非在所有文件中都完全匹配。不过,我想将图堆叠在其他图的上方/上方。具有gnuplot手段可以促进这一点-例如还可以在必要时进行插值吗?
文件1:
0.1 42 1 100
0.2 43 0 102
0.3 45 -2 105
文件2:
0.15 38 -3 88
0.25 37 -2 88.5
plot 'file1' using 1:2 w l, 'file2' using 1:2 w l STACK_ME_PLEASE
因此,在此示例中,我想显示来自 file2 的点大致位于(0.15, 42.5+38)
和(0.25, 44+37)
上-这些点堆叠在 file1的图形上方。
答案 0 :(得分:0)
如果这仍然相关,以下代码涵盖了您的示例,但是,由于您没有提供有关一般数据的信息,因此以下建议可能不适用于更一般的情况。 如果第二个文件的数据恰好位于第一个文件的两个数据点的中间,则数据仅被“堆叠”。也许通过一些额外的努力,它可以以这样一种方式进行调整,如果它只是在第一个文件的两个数据点之间的某个位置,它仍然“堆叠”数据。
代码:
### "stacking" data
reset session
$Data1 <<EOD
0.1 42 1 100
0.2 43 0 102
0.3 45 -2 105
EOD
$Data2 <<EOD
0.15 38 -3 88
0.25 37 -2 88.5
EOD
set table $Data3
plot x1=y1=NaN $Data1 u (x0=x1,x1=$1,(x0+x1)/2.):(y0=y1,y1=$2,(y0+y1)/2.) w table
plot $Data2 u 1:2 w table
unset table
set table $Data4
plot $Data3 u 1:2 smooth freq
unset table
set yrange [0:]
set key top left
plot $Data1 u 1:2 w lp pt 7 lc "red", \
$Data2 u 1:2 w lp pt 7 lc "web-green", \
$Data4 u 1:2 w lp pt 7 lc "cyan"
### end of code
结果: