我想绘制名为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这样的东西上。
答案 0 :(得分: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标签一致)。