小编Phi*_* Wu的帖子

如何让ggplot自动提取调色板的组数

当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)

r ggplot2

5
推荐指数
1
解决办法
1756
查看次数

标签 统计

ggplot2 ×1

r ×1