¿Cómo divido dos conjuntos de datos en gnuplot?

0

Estoy usando gnuplot y tengo dos archivos de datos separados y me gustaría dividir todos los valores del eje x del conjunto de datos 1 con cada valor del eje x con el conjunto de datos 2. Lo mismo con el eje y ... ¿Cómo puedo hacer? ¿¿esta??

¿Puedo hacer esto desde gnuplot?

Helen
fuente

Respuestas:

0

Puede hacer esto desde gnuplot, aunque puede ser más fácil preparar sus datos externamente.

De hecho, esto es bastante similar al preprocesamiento externo de sus datos con un script que toma sus datos y escribe los datos combinados en la salida estándar. La sintaxis para usar una tubería en gnuplot es

plot " < program arguments"

Usualmente uso AWK para tales propósitos. Para resolver su problema, el script de preprocesamiento debe unirse internamente a los dos conjuntos de datos de alguna manera y luego calcular los valores deseados. En AWK, haría algo como esto:

{
 if(secondfile)
   print $1, $2, values[$1,$2]/$3 
 else
   values[$1,$2]=$3
}
ENDFILE{secondfile=true}

Los valores del primer archivo se almacenan en la matriz de valores (el segundo archivo es falso). El patrón ENDFILE se ejecuta al final de cualquier archivo (aquí: primero) y cambia el comportamiento de la regla principal para imprimir las coordenadas x e y los valores divididos (suponiendo que tiene el formato de datos de las columnas "valor de y"). El gancho ENDFILE es compatible con la versión actual de GAWK 4.0.

El comando final de la trama podría verse como

plot "< awk '{if(secondfile) print $1, $2, values[$1,$2]/$3 ; else values[$1,$2]=$3} ENDFILE{secondfile=true}' file1 file2" using 1:2:3

(No entendí completamente cómo desea que se calculen las cantidades, pero puede hacerlo de una manera similar)

Hannes
fuente