背景
?scale_fill_manual
的帮助中说:
...: Arguments passed on to ‘discrete_scale’ palette A palette function that when called with a single integer argument (the number of levels in the scale) returns the values that they should take.
代码
因此,我尝试了:
library(ggplot)
library(dplyr)
my_pal <- colorRampPalette(1:3)
(p <- ggplot(mtcars %>%
group_by(cyl) %>%
summarise(mpg = mean(mpg)),
aes(x = factor(cyl), y = mpg, fill = factor(cyl))) +
geom_col())
问题
但是,如果我想将调色板功能添加到比例尺中,它将不起作用:
p + scale_fill_manual(palette = my_pal)
# Error in as.vector(x, "character") :
# cannot coerce type 'closure' to vector of type 'character'
问题
如何正确使用palette
参数?我知道如何正确设置颜色,但是我想了解palette
参数的用途以及如何使用它。如果它是一个内部参数,我想知道为什么它首先在scale_*_manual
API中可用。
答案 0 :(得分:4)
这似乎是一个错误。请参见(已解决的)问题:scale_colour_manual(palette=foo): cannot coerce type 'closure' to vector of type 'character':
@sjackman:
如何使用
palette
自变量;文档中有示例吗?
@clauswilke:
根本不打算使用它。错误是
palette
可以访问并在文档中提到。