ggplot2 facets 设置绘图颜色

ggplot2 facets set plot colors

不确定标题是否恰当地解释了我的问题:使用小平面环绕,我有一个图是其他图的摘要,这导致该图在我绘制颜色所依据的变量上具有更高的值。因此,所有其他图仅显示(大部分)一种颜色:Example graph。

我希望着色更依赖于 non-summary 图表,而我不太关心摘要图表是否由于包含高值而最终只显示大部分颜色(较低的值仍应显示适当的颜色尽管)。感谢您的帮助。

示例代码:

library(gdata)
library(viridis)
library(ggplot2)
summary <- data.frame(x = 1:15, y = runif(15), z = runif(15, min = 15, max = 200))
dat2 <- data.frame(x = 1:15, y = runif(15), z = runif(15, min = 0, max = 30))
dat3 <- data.frame(x = 1:15, y = runif(15), z = runif(15, min = 0, max = 30))
dat4 <- data.frame(x = 1:15, y = runif(15), z = runif(15, min = 0, max = 30))
dat <- combine(summary, dat2, dat3, dat4)

p <- ggplot(dat, aes(x = x, y = y)) +
geom_point(aes(color = z)) +
scale_color_viridis(option = "magma") +
theme(panel.background = element_rect(fill = "grey93"),
    strip.background = element_blank(),
    panel.grid = element_blank(),
    panel.border = element_rect(fill = NA, colour = "black", size = 0.5, linetype = "solid"))`

p1 <- p +  facet_wrap(~source)
summary <- data.frame(x = 1:15, y = runif(15), z = runif(15, min = 15, max = 200))
dat2 <- data.frame(x = 1:15, y = runif(15), z = runif(15, min = 0, max = 30))
dat3 <- data.frame(x = 1:15, y = runif(15), z = runif(15, min = 0, max = 30))
dat4 <- data.frame(x = 1:15, y = runif(15), z = runif(15, min = 0, max = 30))
dat <- combine(summary, dat2, dat3, dat4)
dat_ <- subset(dat, source != "summary")

cut_off <- 70 # adjust here where you want the cut-off of z values to be.
summary2 <- subset(dat, source == "summary" & z < cut_off) 

p <- ggplot(dat_, aes(x = x, y = y)) +
 geom_point(aes(color = z)) +
 geom_point(data = summary2, aes(col = z)) +
 scale_color_viridis(option = "magma") +
 theme(panel.background = element_rect(fill = "grey93"),
       strip.background = element_blank(),
       panel.grid = element_blank(),
       panel.border = element_rect(fill = NA, colour = "black", size = 0.5, linetype = "solid"))

p1 <- p +  facet_wrap(~source)

summary3 <- subset(dat, source == "summary" & z >= cut_off)
p1 + geom_point(data = summary3, col = "red") # adjust the color aesthetic of the highest summary graph points here.

所以您会看到,汇总图中 z 值大于或等于 70 的汇总数据已着色 "red",因此它们与绿色岩浆尺度形成对比。 (用 "white" 进行实验,对比也很好)。在汇总图中,z 值小于 70 的所有汇总数据观察将遵循与其他三个图表相同的色标。降低 cut_off 变量(当前设置为 70)以获得 dat2、dat3 和 dat4 图形中的更多颜色。

这正是您一直在寻找的答案。