2011-09-07 9 views
17

Usando el comando estándar trama, me sale, lo que yo quiero, excepto que el yrange se ajusta automáticamente a partir de (por ejemplo) 275 a 300.¿Cómo acceder a los valores de rango de Gnuplot (automático) y modificarlos para agregar un margen?

Por desgracia, tengo varios puntos de datos con la coordenada y 300, de forma que sean no visible (debido a líneas de borde, etc.).

Entonces, ¿hay alguna manera de establecer el máximo de yrange de modo que siempre sea el máximo de datos más, p. 5 unidades?

Usando autoscale, el yrange se establece en 275: 300. Establecer explícitamente el rango a 275: 305 funcionaría para un archivo de datos pero no para otros. Así que necesito un método genérico para determinar el punto de datos máximos y establecer el yrange más grande.

+0

https://groups.google.com/forum/#!topic/comp.graphics.apps.gnuplot/JN3CrdPBDpU –

Respuesta

11

hay valores definidos Gnuplot GPVAL_Y_MAX y GPVAL_DATA_Y_MAX (también GPVAL_Y_MIN, GPVAL_DATA_Y_MIN ...). Después de su trazado, el valor máximo se almacenará en estos valores. Para que pueda trazar sus datos, entonces set yrange GPVAL_Y_MAX+(GPVAL_Y_MAX-GPVAL_Y_MIN)*0.05. En este momento, trazarás los datos por segunda vez. Esta vez solo obtienes lo que quieres. El siguiente es mi código.

 
    reset 
    plot "data.dat" u 1:2 #To get the max and min value 
    MAX=GPVAL_Y_MAX 
    MIN=GPVAL_Y_MIN 
    set yrange [MIN-(MAX-MIN)*0.05:MAX+(MAX-MIN)*0.05] 
    #Add a fixed value is not a good idea, so I use a relative one 
    set term png 
    set output "out.png" 
    plot "data.dat" u 1:2 w p notitle #This plot will create a file 
    #named out.png which is waht you want. 

aprendí el método del presente artículo: http://gnuplot-surprising.blogspot.com/2011/09/advanced-background-color-1.html

+9

'set compensaciones gráfico 0, 0, 0.05, 0.05' harán lo mismo. –

21
set offsets <left>, <right>, <top>, <bottom> 

hará. Tenga en cuenta que la escala sigue la escala de datos, por lo que eventualmente dependerá de los datos que desea trazar. Alternativamente, puede usar set offsets graph ... para usar una fracción del tamaño de la gráfica.

Cuestiones relacionadas