4

我正在玩 gnuplot。我的数据集看起来像这样。

1     0.530000  0.510000
2     0.420000  0.310000
4     0.400000  0.160000
8     0.390000  0.070000
16    0.390000  0.040000
32    0.310000  0.020000
64    0.170000  0.020000
128   0.070000  0.000000
256   0.030000  0.000000
512   0.020000  0.000000
1024  0.000000  0.000000

我的 gnuplot 文件是给定的打击。

#!/usr/bin/gnuplot
reset
set terminal png

set ylabel "time in ms"

set xlabel "k"

set title "update every kth element"
set key reverse Left outside
set grid

set style data linespoints

set output 'cache_access.png'
plot "time_mem_access.dat" using 1:2 title "cache access 1", \
      ""                   using 1:3 title "cache access 2"

我得到的图表如下所示。

在此处输入图像描述

我的问题是我希望 x 轴在第一列中显示确切的值

i.e 1,2,4,8,16,32,64 etc.

我在网上找不到任何关于如何完成这项工作的文档。

4

1 回答 1

15

而不是调用:

plot "time_mem_access.dat" using 1:2 title "cache access 1", \
      ""                   using 1:3 title "cache access 2"

你可以试试:

plot "time_mem_access.dat" using 1:2:xtic(1) title "cache access 1", \
      ""                   using 1:3:xtic(1) title "cache access 2"

这将为您提供以下情节: 在此处输入图像描述

但是,您可能想要记录 x 值:

plot "time_mem_access.dat" using (log($1)):2:xtic(1) title "cache access 1", \
      ""                   using (log($1)):3:xtic(1) title "cache access 2"

这会给你: 在此处输入图像描述

于 2013-06-18T04:09:35.010 回答