2012-01-03 9 views
17

Necesito variar el color del punto para una fila de valores basada en el color en una columna. Los datos:¿Cómo hacer que los puntos sean un color cuando una tercera columna es igual a cero y, de otro modo, otro color en Gnuplot?

# x y z 
1, 3, 0 
1, 5, 6 
3, 5, 2 
4, 5, 0 

el color debe ser un valor si la columna es cero y un color diferente si el valor en la tercera columna no es cero.

Por lo tanto, estoy suponiendo:

plot "./file.dat" u 1:2:3 with points palette 

como se encuentra aquí: https://stackoverflow.com/a/4115001 no va a funcionar del todo.

En los datos de ejemplo anteriores, ese comando gnuplot proporciona tres colores diferentes en lugar de los dos que estoy buscando.

+0

JessicaB, por favor marque la mejor respuesta. Gracias. :) –

+0

Condición más general: http://stackoverflow.com/questions/8717805/vary-point-color-in-gnuplot-based-on-value-of-one-column –

Respuesta

1

Puede ajustar la paleta por

set palette defined (-0.1 "blue", 0 "red", 0.1 "blue") 
+0

Esto pone rojo en torno a tres y azul en 0 y 6 y por lo tanto no logra el objetivo de OP. ¡He desarrollado tu idea, mira abajo! – vaettchen

25

Ésta es probablemente cerca de lo que quieren:

set palette model RGB defined (0 'red', 1 'green') 
plot[0:5][0:6] "file.dat" u 1:2:($3 == 0 ? 0 : 1) with points palette 

Usted podría ir un paso más allá y eliminar el "ruido":

unset key 
unset colorbox 
plot[0:5][0:6] "file.dat" u 1:2:($3 == 0 ? 0 : 1) with points pt 7 ps 3 palette 

si solo importa la diferenciación entre cero y distinto de cero.

+0

¡GRACIAS! ¡Esto funciona! Aprecio la ayuda. – JessicaB

+6

@JessicaB: ¿Podría marcar esto como respondido? – vaettchen

Cuestiones relacionadas