当ggplot在具有大量组(例如 n > 14)的对象上使用时,大多数调色板都无法应对。该函数colorRampPalette能够扩展范围,但要将其嵌入 中scale_fill_manual,您需要知道唯一组的数量。
有没有办法直接自动提取所需的颜色数量 ggplot?我在下面提供了一个示例,为了使调色板工作,我必须将组数 (14) 作为参数添加到scale_fill_manual(values = palette_Dark2(14)).
使用 scale_fill_brewer 绘图
df <- data.frame(group = paste0("Category", 1:14),
value = 1:28)
library(ggplot2)
ggplot(df, aes(x = group, y = value, fill = group)) +
geom_bar(stat = "identity") +
scale_fill_brewer(palette = "Set1")
Run Code Online (Sandbox Code Playgroud)
警告消息:在 RColorBrewer::brewer.pal(n, pal) 中:n 太大,调色板 Set1 允许的最大值为 9 返回您要求的调色板,具有这么多颜色
使用自定义调色板绘图
在这里,我在绘图之前指定了一个新的调色板,它是一个具有 14 步的色带。
library(RColorBrewer)
palette_Dark2 <- colorRampPalette(brewer.pal(14, "Dark2"))
Run Code Online (Sandbox Code Playgroud)
然后我在情节中使用它如下:
ggplot(df, aes(x = group, y = value, fill = group)) …Run Code Online (Sandbox Code Playgroud)