第一次发帖,如有错误还请见谅!
我正在尝试使用 gghighlight 包在 R 中的 ggplot2 中制作一个小的倍数图。我有多个地点随时间变化的温度以及周围环境的温度。我的目标是在每个图中突出显示 1 个位置(以及背景中的所有其他位置),但也在每个图中突出显示周围环境的温度。有谁知道该怎么做吗?
所以在下面的示例代码中:
library(ggplot2)
library(gghighlight)
# Example dataset
set.seed(42)
data <- data.frame(
day = rep(1:100, 6),
temp = rnorm(600, mean = 20, sd = 5),
location = rep(c("Location_1", "Location_2", "Location_3", "Location_4",
"Location_5", "surrounding"), each = 100)
)
# Plot
ggplot(data, aes(x = day, y = temp, color = location)) +
geom_line() +
facet_wrap(~location, ncol = 3) +
gghighlight()
但是不要有单独的周围环境图,而是在每个图中突出显示周围环境。
我尝试在 gghighlight() 函数之后添加一行用于包围,如下所示:
ggplot(data, aes(x = day, y = temp, color = location)) +
geom_line(data = subset(data, location != "surrounding")) +
facet_wrap(~location, ncol = 3) +
gghighlight() +
geom_line(data = subset(data, location == "surrounding"))
但这并没有改变剧情。
基本上你的子集方法是正确的。但是,您必须删除或重命名用于分面的列:
library(ggplot2)
library(gghighlight)
library(ggplot2)
library(gghighlight)
ggplot(mapping = aes(x = day, y = temp, color = location)) +
geom_line(
data = subset(data, location != "surrounding")
) +
geom_line(
data = subset(data, location == "surrounding", select = -location),
aes(color = I("grey40"))
) +
facet_wrap(~location, ncol = 3) +
gghighlight()
#> label_key: location