对于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。