gpt4 book ai didi

r - 不同 facet_grids 的不同颜色

转载 作者:行者123 更新时间:2023-12-04 20:57:15 25 4
gpt4 key购买 nike

我很难为我的 2 个不同的 facet_grids 获得不同的颜色。

这是我的简单示例:

df <- data.frame(x = rep(1:20, each=20), y= rep(1:20, 20),
val = sample(0:1,400, replace=TRUE),
facet_grid = c(rep("A", 200), rep("B", 200)))
colors <- c(1,2)
ggplot(df, aes(x = x, y = y)) +
geom_tile(aes(fill = val)) +
facet_grid(. ~ facet_grid, scales = "free") +
scale_fill_gradient(limits=c(0,1), low=brewer.pal(11, "RdYlGn")[colors][1],
high="grey30")

我正在使用 scale_fill_gradient功能与 brewer.pal函数来覆盖使用的标准颜色。但是,我想要实现的是在两个不同的 facet_grids 中设置为 1 的值,应该使用相同的颜色 (grey30)。例如,对于第一个 facet_grig 中为 0 的值,应使用红色,而在第二个 facet_grid 中应使用绿色。

任何人都可以给我一个关于如何实现这一目标的提示吗?

我创建了另一个例子,现在更接近我想要的,但我不明白为什么 scale_fill_identity不起作用。为此,我稍微更改了数据框,以便该值现在有 4 个不同的值:
df <- data.frame(x = rep(1:20, each=20), y= rep(1:20, 20),
val = c(sample(0:1,200, replace=TRUE), sample(2:3,200, replace=TRUE)),
facet_grid = c(rep("A", 200), rep("B", 200)))

ggplot(df, aes(x = x, y = y)) +
geom_tile(aes(fill = val)) +
facet_grid(. ~ facet_grid, scales = "free")

ggplot(df, aes(x = x, y = y)) +
geom_tile(aes(fill = val)) +
facet_grid(. ~ facet_grid, scales = "free")

scale_fill_identity(labels=letters[1:4], breaks=c("red","blue","green","brown")) +

第一个 ggplot 给了我几乎我想要的。两个不同的 facet_grids 中有 4 种不同的颜色。我尝试使用 scale_fill_identity更改 4 种颜色,但我在绘图中得到的是 4 种不同颜色的黑色/白色和红色/绿色,而不是上面指定的颜色。

最佳答案

尝试这个

ggplot(df, aes(x = x, y = y),colour=val) +
geom_tile(aes(fill = factor(val))) +
facet_grid(. ~ facet_grid, scales = "free")+
scale_fill_manual(labels=letters[1:4], values=c("red","blue","green","brown"))

关于r - 不同 facet_grids 的不同颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12192764/

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