0

我想绘制这个名为的数据表quad.dat

#size  time unoptimized blas optimized
2000        0.038101        0.012038        0.012070
4000        0.153213        0.031582        0.048172
6000        0.344972        0.058697        0.108295
8000        0.616240        0.110157        0.192449
10000       0.957405        0.159003        0.300352
12000       1.378795        0.232613        0.431949
14000       1.877082        0.312295        0.587642
16000       2.451135        0.398170        0.766826
18000       4.364723        0.508351        0.970915
20000       5.480937        0.625813        1.197483
22000       6.593878        0.760008        1.448211
24000       7.757721        0.902324        1.714848
26000       9.107044        1.051169        2.018033

这是我的 gnuplot 脚本:

set ylabel "Time [s]"
set xlabel "matrix size[ in k(1000)]"
set xrange [0:26]
set yrange [0:15]
plot "quad.dat" using 2 title "unoptimized" with lines, \
     "quad.dat" using 3 title "blas" with lines,\
     "quad.dat" using 4 title 'optimized' with lines
pause -1

这是实际情节的样子:

演示图

如您所见,并非所有点都被绘制出来,我不明白为什么,它似乎停在 12k 左右。

4

1 回答 1

1

当您只给出using一列来绘制时,gnuplot 假定这些是y值,并且这些x值是使用连续整数填充的。这不是您想要的(如果它在 12 处停止,则意味着文件中有 12 个数据点)。

您实际上想明确地告诉 gnuplot x 值:

plot "quad.dat" using ($1/1000.):2 title "unoptimized" with lines,\
     "quad.dat" using ($1/1000.):3 title "blas" with lines,\
     "quad.dat" using ($1/1000.):4 title 'optimized' with lines

(这将第一列中的数字除以 1000 以与 x-label 一致)。

于 2013-04-07T20:33:39.307 回答