preguntas que he visto algo similar a esto, pero me gustaría hacer mi pregunta específica la forma más directa posible:Transformar escala de colores, pero mantener un buen leyenda con ggplot2
Tengo un gráfico de dispersión con una "z" variables codifica en una escala de colores:
library(ggplot2)
myData <- data.frame(x = rnorm(1000),
y = rnorm(1000))
myData$z <- with(myData, x * y)
badVersion <- ggplot(myData,
aes(x = x, y = y, colour = z))
badVersion <- badVersion + geom_point()
print(badVersion)
que produce esto:
Como se puede ver, ya que la variable "z" se distribuye normalmente, muy pocos de los puntos son de color con el colores "extremos" de la distribución. Esto es lo que debería ser, pero estoy interesado en enfatizar la diferencia. Una forma de hacer esto sería utilizar:
betterVersion <- ggplot(myData,
aes(x = x, y = y, colour = rank(z)))
betterVersion <- betterVersion + geom_point()
print(betterVersion)
que produce esto:
Mediante la aplicación de rango() a la "z" variables, consigo un mayor énfasis en las diferencias de menor importancia dentro de la " z "variable. Uno podría imaginar el uso de cualquier transformación aquí, en lugar de rango, pero se entiende la idea.
Mi pregunta es, esencialmente, cuál es la forma más directa, o la forma más "verdadera ggplot2", de obtener una leyenda en las unidades originales (unidades de z, en oposición al rango de z), mientras se mantiene la versión transformada de los puntos de colores?
Tengo la sensación de que esto usa el reescalador() de alguna manera, pero no me queda claro cómo usar el reescalador() con transformaciones arbitrarias, etc. En general, serían útiles ejemplos más claros.
Gracias de antemano por su tiempo.
+1 para un ejemplo reproducible, objetivo claro y una pregunta de visualización interesante. –