2011-07-13 14 views
8

Utilizo gnuplot para trazar los tiempos de ejecución medidos en la CPU y la GPU según el tamaño de los datos. Entonces tengo dos archivos con los tiempos de ejecución. Trazarlos es sencillo.Cómo especificar el inicio del eje x en 1 en lugar de 0

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 

El gráfico resultante se puede encontrar aquí: 1

He intentado utilizar xtics sin embargo, no se desplaza el eje x para empezar a 1, pero apenas comienza a las garrapatas 1. ¿Cómo puedo ¿Cambia el eje x para que comience en 1 y termine en 50?

actualización

Datafile cpuTimes.txt continuación

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

Algunos dirían que elegir los ejes para ocultar los datos es engañoso ... – Tom

+0

@Tom Creo que Nils tiene una sola columna de datos. Entonces las estrellas gnuplot trazan en 0 por defecto. Esto es sin embargo arbitrario. Por otro lado, es posible que no entienda la pregunta correctamente ^^. – Woltan

Respuesta

9

xtics son sólo para "etiqueta" del eje x. Lo que estás buscando es algún tipo de "manipulación de datos". Yo te sugeriría que haciendo uso de using así:

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

Para hacer que el final de la parcela a 50 hay dos maneras:

  1. puede especificar la gama X con set xrange [1:50] o con

    plot [1:50] "cpuTimes.txt" u ($0+1):1 t "CPU" w lp, \ 
          "gpuTimes.txt" u ($0+1):1 t "GPU" w lp 
    
  2. Es necesario incluir every así:

    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 
    

    Consulte every para obtener documentación de referencia.

+0

1 no funcionó. Usando 2 lo tengo trazando correctamente, gracias! – Nils

0

Dé un rango del eje en su comando plot:

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

Trama probada [1:50] "cpuTimes.txt" título "CPU" con puntos de línea no funciona. – Nils

+0

ah parece afectar el eje y, pero no el eje x, debería afectar el eje x – Nils

+0

@Nils Sería más fácil ver qué sucede si proporcionó un fragmento de su archivo de datos. –

1

No he utilizado gnuplot en un rato, pero yo cree que puede usar set xrange para ajustar lo que se traza.

En su caso, el comando es:

set xrange [ 1 : 50 ] 
+0

Tu creencia es correcta. –

+0

¡Lo intenté, no funciona! – Nils

Cuestiones relacionadas