我正在使用gnuplot并且拥有一些包含2个以上参数的数据。我不想使用3D图表。因此,我将在同一个图中将数据分成几行。
我的数据看起来像这样,在一种情况下:
#k #N #time
1 1 0.000556134
2 1 0.00099
4 1 0.00201011
8 1 0.00376214
16 1 0.00675843
1 2 0.000717646
2 2 0.000794106
4 2 0.0016033
8 2 0.0033602
16 2 0.00795338
1 4 0.000476448
... ... ...
首先是我使用的流的数量,第二个是缓冲区大小,最后一个是此操作的时间使用。
我想要一个图表,其中缓冲区大小为X,时间Y,并且对于每个“使用的流量”,都有一行。我的代码到目前为止:
reset
set autoscale # scale axes automatically
unset log # remove any log-scaling
unset label # remove any previous labels
set xtic auto # set xtics automatically
set ytic auto # set ytics automatically
#set logscale x 2
#set logscale y 2
set rmargin 10
set bmargin 5
set tmargin 5
set key left top
set title
set term png giant size 1500, 800 crop
set title "Adapter Stream Input" font "verdana, 20"
set xlabel "Buffer Size" font "verdana, 20"
set ylabel "Time in Seconds" font "verdana, 20"
set key right bottom spacing 4 width 5 height 5 font "verdana, 15"
set output "AdapterStreamInputTests.png"
plot "AdapterStreamInputTests.txt" using ($1 == 1 ? $2 : 1/0):($1 == 1 ? $3 : 1/0) title '1 Stream' with linespoints ls 1 linecolor rgb "blue", \
"AdapterStreamInputTests.txt" using ($1 == 2 ? $2 : 1/0):($1 == 2 ? $3 : 1/0) title '2 Stream' with linespoints ls 1 linecolor rgb "red", \
"AdapterStreamInputTests.txt" using ($1 == 4 ? $2 : 1/0):($1 == 4 ? $3 : 1/0) title '4 Stream' with linespoints ls 1 linecolor rgb "yellow", \
"AdapterStreamInputTests.txt" using ($1 == 8 ? $2 : 1/0):($1 == 8 ? $3 : 1/0) title '8 Stream' with linespoints ls 1 linecolor rgb "brown", \
"AdapterStreamInputTests.txt" using ($1 == 16 ? $2 : 1/0):($1 == 16 ? $3 : 1/0) title '16 Stream' with linespoints ls 1 linecolor rgb "pink"
set output
我现在的主要问题是它绘制的所有内容都是正确的但它不会在图之间划线。我在“使用”一章的命令下阅读了manual:
应该注意的是,情节'le',使用1:2绘制'le',以及绘图 'le'使用($ 1):( $ 2)可以巧妙地说:1)如果le有一些线条 有一列,有些有两列,rst会发明x值 他们失踪了,第二个会悄悄忽略一条线 列,第三个将为具有一个的行存储未定义的值 点(因此,在带有线的图中,没有线连接点 坏点); 2)如果一行包含第一列的文本,则为rst 将错误地中止情节,但第二和第三应该 悄悄地跳过垃圾。
我认为我处于第三个类别并且没有线条,因为每个地块之间都有4个无效的情节,但我找不到任何方法来修复它。
我找不到办法让它忽略无效的情节。并且似乎没有任何我能够找到的预处理方法,可以删除未使用的图。但我可能错过了一些东西。
答案 0 :(得分:6)
你有两种选择。
1。)使用显示here,alternative link (wayback machine)
的每个命令2。)使用缺少的参数,如上所述,使用?:符号来添加字符。有关伟大的inofficial FAQ,alternative link (wayback machine)
的详细信息