Я создаю несколько фигур с помощью ggplot2 и хочу назначить фиксированные цвета различным группам. Для этого я использую подход, показанный в вопросе ggplot2: исправить цвета на уровнях фактора , как это предусмотрено alistaire .
То есть я определил свой собственный масштабируется следующим образом
library(ggplot2)
scale_fill_ind <- function(...){
ggplot2:::manual_scale(
'fill',
values = setNames(c('green', 'blue', 'red', 'orange'), LETTERS[1:4]),
...
)
}
df1 <- data.frame(Value = c(40, 20, 10, 60),
Type = c("A", "B", "C", "D"))
ggplot(df1, aes(x = Type, y = Value, fill = Type)) +
geom_col() +
scale_fill_ind()
df2 <- data.frame(Value = c(40, 20, 60),
Type = c("A", "B", "D"))
ggplot(df2, aes(x = Type, y = Value, fill = Type)) +
geom_col() +
scale_fill_ind()
Однако в моем собственном коде имена факторов значительно длиннее, чем просто "A", "B", ..., так что мне приходится "форсировать" разрыв строки в легенда с str_wrap()
с максимум 25 символами в строке.
Это, однако, позволяет избежать назначения цветов моим факторам, имеющим разрыв строки. Если я сокращу имена факторов, подход будет работать хорошо. У вас есть идея, как я могу назначить фиксированные цвета моим «длинным» именам факторов, чтобы подход, описанный выше, работал?
Большое спасибо!