Более крутые градиенты в scale_gradientn - PullRequest
0 голосов
/ 24 мая 2018

Используя ggplot2 в R, я могу получить дискретную цветовую шкалу, такую ​​как: https://i.stack.imgur.com/7g4mf.png

Это может быть сгенерировано, как видно здесь .

Впрочем, выглядит не очень.Я хотел бы, чтобы ro удалил расстояние между уровнями, и я подумал, что, возможно, я мог бы переключиться на непрерывную цветовую шкалу, используя scale_gradientn() и имея очень крутой градиент между различными цветами.Таким образом, я мог бы использовать непрерывную цветовую шкалу, которая имеет метки в нужных местах и ​​отлично выглядит, а не дискретную.

Однако это лучшее, что я мог придумать:

library(ggplot2)
ggplot(faithfuld, aes(waiting, eruptions)) +
  geom_raster(aes(fill = density)) +
  scale_fill_gradientn(
    colours = c("red", "green", "blue", "yellow"), 
    values=c(0, 0.25, 0.25001, 0.5, 0.5001, 0.75, 0.75001,1)
  )

enter image description here

Что явно недостаточно хорошо, так как между 4 уровнями можно заметить значительное смещение цвета.

Возможно ли это вообще вggplot2

Ответы [ 2 ]

0 голосов
/ 17 августа 2018

вы можете использовать высоту ключа легенды в теме, установить ее как

 legend.key.height =  unit(0, 'lines')

, и вы правы, пробная версия и ошибка должны быть сделаны. Мой сюжет выглядит следующим образом enter image description here

0 голосов
/ 24 мая 2018

Просто используйте дискретную шкалу:

library(ggplot2)
faithfuld$classes <- cut(faithfuld$density, c(-Inf, 0.01, 0.02, 0.03, Inf))
ggplot(faithfuld, aes(waiting, eruptions)) +
  geom_raster(aes(fill = classes)) +
  scale_fill_manual(name = "density",
                    values = c("red", "green", "blue", "yellow"),
                    labels = c(0.01, 0.02, 0.03, "")) +
  guides(fill = guide_legend(label.vjust = -0.2))

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...