#r #ggplot2 #geom-point
Вопрос:
Я хочу создать график, на котором геометрические точки (или колебания) заполняются после заданного значения, но их цвет линий белый.
Однако установка цвета на белый делает так, что в легенде отображаются невидимые точки, и это довольно бесполезно. Как я могу заставить легенду отображать черные точки правильного размера, но фактический сюжет имеет другой цвет и заливку?
Пример того, что я получил за работу:
mtcars %>%
ggplot(aes(disp, mpg, size = cyl, fill = mpg))
geom_jitter(alpha = 0.8, pch = 21)
scale_size_continuous(trans = 'log10')
scale_fill_viridis_c()
Как я могу сидеть color = 'white'
внутри geom_jitter
, не создавая бесполезную легенду?
Ответ №1:
Вы можете переопределить определенную эстетику в легенде масштаба с помощью guide_legend(override.aes = list(...))
. Пример ниже:
library(ggplot2)
ggplot(mtcars, aes(disp, mpg, size = cyl, fill = mpg))
geom_jitter(alpha = 0.8, pch = 21, colour = "white")
scale_size_continuous(
trans = 'log10',
guide = guide_legend(override.aes = list(fill = "black"))
)
scale_fill_viridis_c()
Создано 2021-05-26 пакетом reprex (v1.0.0)
Комментарии:
1. есть ли мнение, как эти 2 легенды будут вынуждены отображаться
fill
иsize
в то же время?2. Блестяще, это было именно то, что я искал! Большое спасибо!
3. @bird вы можете объединить легенды только в том случае, если они имеют одинаковые свойства (заголовки, разрывы, метки и т.д.). Самый простой способ сделать это-установить эстетику в один и тот же столбец,
aes(size = var, fill = var)
т. Е. Поскольку заливка здесь непрерывная, вам следует установить в руководстве условные обозначения вместо цветовой панели по умолчанию.