如何在R中使用ggplot2自定义调色板?[duplicate]

abithluo  于 2023-01-06  发布在  其他
关注(0)|答案(2)|浏览(154)
    • 此问题在此处已有答案**:

Using a pre-defined color palette in ggplot(4个答案)
9小时前关门了。
我尝试使用十六进制代码创建一个自定义调色板,并将其用于geom_bar的"填充"美学(离散变量)。
请参阅下面的代码。

library(pacman)
p_load(tidyverse, ggplot2, RColorBrewer)

palette_new <- colorRampPalette(colors = c("white", "#154360", "#FF5733", "#FFC300", "#1ABC9C"))(5)
scales::show_col(palette)

data(diamonds)

ggplot(diamonds, aes(x = color, fill = cut)) +
  geom_bar() +
  scale_fill_brewer(palette = "palette_new")

输出,但请参见下面的错误消息:

警告信息:在pal_name(调色板,类型)中:未知调色板palette_new
我已经看到了关于堆栈溢出的几个问题,并尝试了不同的事情,没有工作。提前感谢!

42fyovps

42fyovps1#

@akrun对scale_fill_manual有正确的处理方法:

ggplot(diamonds, aes(x = color, fill = cut)) +
    geom_bar() +
    scale_fill_manual(values = palette_new)

由于您没有使用RColorBrewer调色板,因此可以完全明确地使用scale_colour_manualscale_fill_manual

7qhs6swi

7qhs6swi2#

我认为你的主要问题是RColorBrewer只允许你使用它预定义的调色板,所以你的调色板和你选择的值实际上看起来像这样:

如果使用,@akrun和@Specer都是正确的

palette_new <- grDevices::colorRampPalette(
          colors = c("white", "#154360", "#FF5733", "#FFC300", "#1ABC9C"))(5)
ggplot(diamonds, aes(x = color, fill = cut)) +
  geom_bar() +
  scale_fill_manual(values = palette_new)

你会得到这样的图

你会得到这个:

相关问题