ggplot:更新多个离散颜色的geom默认值

时间:2018-06-13 22:40:50

标签: r ggplot2

对于ggplot2,我希望能够为颜色或填充美学映射到(离散)数据时设置默认值。虽然我知道我可以在每个绘图调用中使用scale_*_manual(),但我想设置默认值。

可以使用以下方法更新geom的默认颜色:

update_geom_defaults(geom = "bar", new = list(fill = "red")

然而,当美学被映射时,这被覆盖了。提供填充向量不起作用。

另外,我有一组10种预定的颜色,我想按顺序使用,而不是使用调色板的更常见的解决方案(即viridis,这仍需要一个scall _ * _ viridis调用每个情节)。

有没有这样做的方法?

示例:

目前,您可以毫无问题地为scale_*_manual()提供额外的颜色,它只需要使用所需的颜色。如何通过设置填充/颜色aes时使用的默认颜色而不是默认的ggplot来获得相同的结果?

require(tidyverse)
#> Loading required package: tidyverse
col_colors <- c("#741D5A", "#DD9E27", "#33439B", "#ED1C24", 
                "#24420E", "#BB4126", "#AE9B32", "#783545")

mtcars %>% 
  ggplot(aes(x = cyl, y = wt, fill = factor(cyl))) + 
     geom_col() + 
     scale_fill_manual(values = col_colors)

reprex package(v0.2.0)创建于2018-06-13。

0 个答案:

没有答案