2011-11-17 41 views
6

Necesito crear un mapa de calor personalizado como se ilustra en la figura adjunta. Es diferente de un mapa de calor convencional en el sentido de que quiero que use dos degradados de color, uno para valores positivos y uno para valores negativos.Mapa de calor personalizado en R

enter image description here

Como se muestra en la figura adjunta, me gustaría un color para representar la intensidad de los valores que son positivo (o, idealmente, por encima de un cierto umbral) y otro color para representar la intensidad de los valores que son negativos (alternativamente, debajo del umbral).

Un poco de historia: tengo un conjunto de opciones binarias, una opción es preferible para un cierto rango de datos, mientras que la otra se prefiere para los datos restantes. Quiero proporcionar una ayuda visual que describa qué opción/elección es mejor para las diferentes combinaciones de datos, pero quiero que la ayuda visual también proporcione la escala de "mejora" que una opción tiene sobre la otra para esa instancia. Entonces, el color indicará qué opción elegir mientras que la intensidad del color indica cuánto mejor es esa opción en comparación con la otra.

+0

Esto se llama una paleta de colores divergentes, y hay un montón de ellos en el paquete RColorBrewer. Siempre y cuando se centre correctamente en 0, entonces es lo correcto. – Spacedman

Respuesta

9

aquí es un ejemplo usando ggplot2:

# sample data 
df <- data.frame(expand.grid(x = 1:4, y = 1:4), v = runif(16, -10, 10)) 

# plot 
ggplot(df, aes(x, y, fill = v, label = sprintf("%.1f", v))) + 
    geom_tile() + geom_text() + 
    scale_fill_gradient2(low = "blue", high = "red") 

enter image description here

+0

Gracias, esto funciona. – Arjun

+0

¡Este es un código realmente excelente y útil, gracias! – mfk534

Cuestiones relacionadas