Преобразуйте цветовую гамму, но сохраняйте хорошую легенду с ggplot2
Я видел несколько схожих вопросов с этим, но я хотел бы задать свой конкретный вопрос настолько прямо, насколько смогу:
У меня есть точечная диаграмма с "z" Переменная закодирована в цветовую шкалу:
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)
Который производит это:
Как вы можете видеть, так как & quot; z & quot; переменная обычно распределена, очень немногие из точек окрашены с помощью «крайнего»; цвета раздачи. Это так и должно быть, но мне интересно подчеркнуть разницу. Один из способов сделать это будет использовать:
betterVersion <- ggplot(myData,
aes(x = x, y = y, colour = rank(z)))
betterVersion <- betterVersion + geom_point()
print(betterVersion)
Который производит это:
Применяя rank () к & quot; z & quot; переменная, я получаю гораздо больший акцент на незначительные различия в пределах & quot; z & quot; переменная. Можно представить себе использование здесь любого преобразования вместо ранга, но вы поняли идею.
Мой вопрос, по сути, каков самый простой способ или самый «верный ggplot2»? Кстати, получить легенду в исходных единицах (единицах z, в отличие от ранга z), сохранив при этом преобразованную версию цветных точек?
У меня есть ощущение, что это как-то использует rescaler (), но мне не ясно, как использовать rescaler () с произвольными преобразованиями и т. Д. В целом, более полезные примеры были бы полезны.
Спасибо заранее за ваше время.