如何在 ggplot2 中使用自己的调色板?
How to use its own palette with ggplot2?
我已经定义了一个调色板 colorRampPalette
用于每个绘图。如何使用 ggplot2 默认设置此调色板?
我不知道该怎么做,也找不到答案。
MWE:
df <- data.frame(x = letters[1:3], y = runif(3), fill = LETTERS[1:3])
mypalette <- colorRampPalette(colors = c("white", "blue"))
现在如何使用调色板本身而不是 hack:
ggplot(df, aes(x=x,y=y)) + geom_col(aes(fill = fill)) +
scale_fill_manual(values = mypalette(3))
更一般地说,是否有类似 theme(palette = mypalette)
的东西,所以默认情况下必须始终拥有自己的调色板?
我发现以下策略有时很有用:
scale_fill_discrete <- function(...)
scale_fill_manual(..., values=palette())
ggplot(df, aes(x=x,y=y)) + geom_col(aes(fill = fill))
palette(c("#738290", "#A1B5D8", "#C2D8B9"))
ggplot(df, aes(x=x,y=y)) + geom_col(aes(fill = fill))
我已经定义了一个调色板 colorRampPalette
用于每个绘图。如何使用 ggplot2 默认设置此调色板?
我不知道该怎么做,也找不到答案。
MWE:
df <- data.frame(x = letters[1:3], y = runif(3), fill = LETTERS[1:3])
mypalette <- colorRampPalette(colors = c("white", "blue"))
现在如何使用调色板本身而不是 hack:
ggplot(df, aes(x=x,y=y)) + geom_col(aes(fill = fill)) +
scale_fill_manual(values = mypalette(3))
更一般地说,是否有类似 theme(palette = mypalette)
的东西,所以默认情况下必须始终拥有自己的调色板?
我发现以下策略有时很有用:
scale_fill_discrete <- function(...)
scale_fill_manual(..., values=palette())
ggplot(df, aes(x=x,y=y)) + geom_col(aes(fill = fill))
palette(c("#738290", "#A1B5D8", "#C2D8B9"))
ggplot(df, aes(x=x,y=y)) + geom_col(aes(fill = fill))