gpt4 book ai didi

r - 如何在 ggplot 命令中激活两个不同的 scale_fill_manual

转载 作者:行者123 更新时间:2023-12-04 07:26:36 28 4
gpt4 key购买 nike

这个问题来自我的earlier one关于 ggplot2 中的背景颜色。

从那里的答案,我现在可以使用 geom_rect为我的情节提供五种不同颜色的背景。最重要的是,我想绘制一个使用两种不同颜色的条形图。我可以分别完成这些任务中的每一项,但是当我尝试将它们组合在一起时,scale_fill_manual命令冲突。

这是我正在尝试的:

scores = data.frame(category = 1:4, percentage = c(34,62,41,44), type = c("a","a","a","b"))
rects <- data.frame(ystart = c(0,25,45,65,85), yend = c(25,45,65,85,100), col = letters[1:5])
labels = c("ER", "OP", "PAE", "Overall")
medals = c("navy","goldenrod4","darkgrey","gold","cadetblue1")

ggplot() +
geom_rect(data = rects, aes(xmin = -Inf, xmax = Inf, ymin = ystart, ymax = yend, fill=col), alpha = 0.3) +
scale_fill_manual(values=medals) +
opts(legend.position="none") +
geom_bar(data=scores, aes(x=category, y=percentage, fill=type), stat="identity") +
#scale_fill_manual(values = c("indianred1", "indianred4")) +
scale_x_continuous(breaks = 1:4, labels = labels)

如前所述,这使得两个条形图颜色与前两个背景颜色相同。删除第二个 # 上的“ scale_fill_manual”命令(倒数第二行)覆盖背景颜色命令以使条成为我想要的颜色,但使背景在 barchart 中只有我想要的两种颜色.

我怎样才能拥有一个 scale_fill_manual命令应用于 geom_rect背景和其他给 geom_bar条形图(或者我怎样才能通过其他方式达到相同的效果)?

最佳答案

问题是您使用的是 "a""b"在这两个 rectsscores ,所以它们被映射到相同的颜色。由于矩形似乎是占位符值,请将它们更改为比 scores 中的任何内容都晚的不同内容。 .

rects$col <- c("Z1","Z2","Z3","Z4","Z5")

现在你可以制作一个 scale_fill_manual所有 (7) 种颜色。
ggplot() + 
geom_rect(data = rects, aes(xmin = -Inf, xmax = Inf, ymin = ystart,
ymax = yend, fill=col), alpha = 0.3) +
opts(legend.position="none") +
geom_bar(data=scores, aes(x=category, y=percentage, fill=type), stat="identity") +
scale_fill_manual(values=c("indianred1", "indianred4", medals)) +
scale_x_continuous(breaks = 1:4, labels = labels)

enter image description here

关于r - 如何在 ggplot 命令中激活两个不同的 scale_fill_manual,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10097615/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com