Hay algunas cosas que podrían estar fallando aquí: sin ver su archivo de datos es imposible saberlo. Una pareja que puedo pensar en la parte superior de mi cabeza son:
Todos los puntos de datos en la columna 2 están a menos de o igual a 0 (aparece el mensaje de error porque log (0) no está definido)
No tiene ningún punto en la primera columna entre 50 y 100. En este caso, todos sus puntos de datos quedan recortados del rango de trazado debido a set xrange [50:100]
Su archivo de datos solo tiene 1 columna ... En este caso , gnuplot no ve ningún valor y. (Cambiar a plot '../myFile.final' u 1 ...
)
EDITAR
Ok, ahora que veo el fichero de datos, el problema es, sin duda que usted tiene set xrange [50:60]
pero tu de datos xrange sólo se ejecuta de 0 a 2 (gnuplot se inicia la indexación de ficheros de datos de 0). La forma más fácil de solucionar este problema es utilizar la pseudo-columna 0. Pseudo-columna 0 es simplemente el número de línea a partir de 0 (que es lo que gnuplot parcelas en el eje x si lo hace plot 'blah.txt' using 1
He aquí un ejemplo:.
scale_x(x,xmin,xmax,datamin,datamax)=xmin+(xmax-xmin)/(datamax-datamin)*x
plot 'test.dat' using (scale_x($0,50,60,0,2)):1 w lines title "scaled xrange"
Tenga en cuenta que si usted no sabe cómo funciona el uso de la especificación, números precedidos por $ son operaciones elemento a elemento en toda esa columna por ejemplo:.
plot 'foo.bar' using 1:($2+$3)
se trace la primera columna más la suma de el segundo y tercer elementos en cada fila del archivo de datos.
Esta solución asume que usted conoce el valor máximo de x en su archivo de datos (en este caso, eso es 3-1 = 2 - [tres puntos, 0,1,2]). Si no conoce la cantidad de puntos de datos, puede obtenerlos mediante el uso de shell magic o directamente desde gnuplot. La primera forma es un poco más fácil, aunque no tan portátil. Voy a mostrar tanto:
XMAX=`wc -l datafile | awk '{print $1-1}'`
scale_x(x,xmin,xmax,datamin,datamax)=xmin+(xmax-xmin)/(datamax-datamin)*x
plot 'test.dat' using (scale_x($0,50,60,0,XMAX)):1 w lines title "scaled xrange"
La segunda manera, tenemos que hacer dos pasos por los datos y dejar que gnuplot recoger el máximo:
set term push #save terminal settings
set term unknown #use unknown terminal -- doesn't actually make a plot, only collects stats
plot 'test.dat' u 0:1 #collect stats
set term pop #restore terminal settings
XMIN=GPVAL_X_MIN #should be 0, set during our first plot command
XMAX=GPVAL_X_MAX #should be number of lines-1, collected during first plot command
scale_x(x,xmin,xmax,datamin,datamax)=xmin+(xmax-xmin)/(datamax-datamin)*x
plot 'test.dat' using (scale_x($0,50,60,XMIN,XMAX)):1 w lines title "scaled xrange"
supongo que esté completo, debería decir que esto también es más fácil de hacer en gnuplot 4.6 (no tengo instalado en este momento, por lo que la siguiente parte simplemente viene de mi comprensión de los documentos):
stats 'test.dat' using 0:1 name "test_stats"
#at this point, your xmin/xmax are stored in the variables "test_stats_x_min"/max
XMIN=test_stats_x_min
XMAX=test_stats_x_max
scale_x(x,xmin,xmax,datamin,datamax)=xmin+(xmax-xmin)/(datamax-datamin)*x
plot 'test.dat' using (scale_x($0,50,60,XMIN,XMAX)):1 w lines title "scaled xrange"
Gnuplot 4.6 se ve muy bien. Probablemente empezaré a jugar con eso muy pronto.
¿Cuáles son los contenidos de '../ myFile.final'? – mgilson
¡Está fuera del directorio actual! una forma de mi contenido es verdad! – Mehdi