scale _ * _ manual中调色板参数的用法

时间:2019-06-12 07:33:22

标签: r ggplot2

背景

?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中可用。

1 个答案:

答案 0 :(得分:4)

这似乎是一个错误。请参见(已解决的)问题:scale_colour_manual(palette=foo): cannot coerce type 'closure' to vector of type 'character'

@sjackman:

  

如何使用palette自变量;文档中有示例吗?

@clauswilke:

  

根本不打算使用它。错误是palette可以访问并在文档中提到。