使用gnuplot在2D绘图上添加水平线

时间:2018-01-03 14:25:00

标签: gnuplot

我正在使用以下代码段从几个数据文件(snapshot_XXXX.dat)创建2D绘图

set terminal pngcairo
n=1000  # Number of snapshots

load 'color.pal'
# cbrange[-6:-2]
unset key
set style fill solid

set ylabel "Snapshot/Time"
# set yrange [0.5:n+0.5]
# set ytics 1    # manage it well in order to avoid black lines at the 
borders
set xrange[0:2021]
set yrange[0:8]
# This functions gives the name of the snapshot file
snapshot(i) = sprintf("snapshot_%04d.dat", i)
plot for [i=1:n] './snapshots/'. snapshot(n+1-i) using 1:2:3 with boxes 
     linecolor palette

结果为:picture

快照看起来像

snapshot_0001.dat  snapshot_0002.dat  snapshot_0003.dat  
   1 1.0 0.0            1 1.0 0.0            1 1.0 0.0           
   2 1.5 0.0            2 1.5 0.0            2 1.5 0.0           
   3 2.0 0.5            3 2.0 0.7            3 2.0 0.7            
   4 2.5 1.0            4 2.5 1.5            4 2.5 1.5           
   5 3.0 0.5            5 3.0 0.7            5 3.0 1.1           
   6 3.5 0.0            6 3.5 0.0            6 3.5 0.7           
   7 4.0 0.0            7 4.0 0.0            7 4.0 0.0          
   8 4.5 0.0            8 4.5 0.0            8 4.5 0.0           
   9 5.0 0.0            9 5.0 0.0            9 5.0 0.0            

当然这些都是假数据,因为原始文件太重了,无法添加到这篇文章中。我想在特定时间添加水平线(标记为SnapShot / TIME的轴)。

有人可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

这解决了我的问题

std::stringstream

非常感谢Christoph