【发布时间】:2020-07-11 14:43:39
【问题描述】:
我正在使用 ggplot2 创建几个图形,并希望将固定颜色分配给不同的组。为此,我使用alistaire 提供的问题ggplot2: Fix colors to factor levels 中显示的方法。
也就是说,我定义了自己的自定义比例如下
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 个字符。
但是,这避免了将颜色分配给具有换行符的因子。如果我缩短因子名称,则该方法效果很好。您有什么想法吗,如何将固定颜色分配给我的“长”因子名称,以便上述方法有效?
非常感谢!
【问题讨论】:
-
我正在尝试复制此问题,但我无法理解您要实现的目标。因子名称超过 25 个字符很好,并且使用上面的代码可以毫无问题地绘制;强制换行纯粹是出于文体原因吗?