2011-07-13 64 views
8

我使用gnuplot来绘制在CPU和GPU上测量的执行时间,具体取决于数据大小。所以我有两个文件的执行时间。绘制它们很简单。如何在1而不是0处指定x轴的开始

set title "CPU vs GPU" 

set xlabel "Number of Particles (* 10'000)" 
set ylabel "Time in Microseconds" 

plot "cpuTimes.txt" title "CPU" with linespoints, \ 
    "gpuTimes.txt" title "GPU" wit 

所得的情节可以在这里找到:1

我试图用xtics但它不移动X轴从1开始,但只是从1开始的蜱我怎样才能移动X轴,使其从1开始并在50结束?

更新

数据文件cpuTimes.txt下面

64780 
129664 
195490 
266697 
327871 
391777 
459150 
517999 
582959 
647984 
717377 
790415 
830869 
900475 
959599 
1026041 
1092899 
1156022 
1297471 
1286325 
1349227 
1415936 
1482857 
1539580 
1607389 
1673436 
1737098 
1801568 
1874431 
1935975 
2006892 
2053077 
2129867 
2195117 
2254467 
2314478 
2373546 
2435416 
2506850 
2587302 
2625556 
2674799 
2758387 
2820720 
2896794 
2953550 
3053817 
3089501 
3170513 
3271537 
+0

有人会说选择你的轴来隐藏数据是有误导性的...... – Tom

+0

@Tom我认为Nils只有一列数据。然后gnuplot星号默认为0。然而这是任意的。另一方面,我可能只是不正确地理解这个问题^^。 – Woltan

回答

9

xtics只为 “标签” x轴。你在找什么是某种“数据处理”。我建议利用的using像这样:

plot "cpuTimes.txt" u ($0+1):1 t "CPU" w lp, \ 
    "gpuTimes.txt" u ($0+1):1 t "GPU" w lp 

要在50月底情节有两种方式:

  1. 你可以用set xrange [1:50]

    指定x范围
    plot [1:50] "cpuTimes.txt" u ($0+1):1 t "CPU" w lp, \ 
          "gpuTimes.txt" u ($0+1):1 t "GPU" w lp 
    
  2. 您需要包括every像这样:

    plot "cpuTimes.txt" u ($0+1):1 every 1::::50 t "CPU" w lp, \ 
        "gpuTimes.txt" u ($0+1):1 every 1::::50 t "GPU" w lp 
    

    请参阅every了解更多信息。

+0

1没有工作。使用2我得到了正确的绘图,谢谢! – Nils

0

举一个轴范围在您的绘图命令:

plot [1:50] "cpuTimes.txt" 
+0

试图阴谋[1:50]“cpuTimes.txt”标题“CPU”与linespoints不起作用。 – Nils

+0

啊它似乎影响y轴,但不影响x轴,它应该影响x轴 – Nils

+0

@Nils如果您提供了数据文件的片段,那么看看会发生什么会更容易。 –

1

我还没有在一段时间使用的gnuplot,但我相信你可以使用set xrange来调整绘制的内容。

在你的情况下,命令是:

set xrange [ 1 : 50 ] 
+0

您的信仰是正确的。 –

+0

试过了,不行! – Nils