2011-06-08 13 views
18

Tengo datos formateados en columna y quiero hacer una brecha del logaritmo de la quinta columna en comparación con las dos primeras columnas. He tratado:Funciones de llamada en columnas de datos en Gnuplot

set pm3d map 
splot "thing.file" u 1:2:log($5) 

pero me sale el error

undefined value 

¿Cómo puedo obtener gnuplot para trazar una función de una de las columnas de datos?

Respuesta

26

Esto funciona:

splot "thing.file" u 1:2:(log($5)) 

En general, si un término es definido por una función de una columna en un archivo de datos en lugar de la propia columna, es necesario que existan paréntesis alrededor de ese término.

-6

Tomado del propio FAQ de gnuplot, "Gnuplot ha sido y es un programa de trazado, no un paquete de procesamiento de datos o programa matemático. Por lo tanto, gnuplot no puede hacer eso".

Puede ejecutar su archivo de datos a través de Octave o Matlab para generar los archivos de registro antes de trazar.

+4

lo descubrió: Si entro: splot "thing.file" u 1: 2: (log ($ 5)) se ejecuta la función en esa columna. En general, debe haber un paréntesis alrededor de una expresión que involucre funciones de una columna, creo. – Dan

+2

@Dan ¿Por qué no hacer que una respuesta? –

+0

No tengo suficiente reputación para responder mi propia pregunta hasta 8 horas después de que la publique. – Dan

1

Extender la solución, puede utilizar varias columnas si su función requiere múltiples entradas: ejemplo:

plot "file" using 1:(x=$2, y=$3, f(x,y)) 

también funciona.

Cuestiones relacionadas