gghighlight 和facet_wrap 始终突出显示

问题描述 投票:0回答:1

第一次发帖,如有错误还请见谅!

我正在尝试使用 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"))

但这并没有改变剧情。

r ggplot2 facet-wrap gghighlight
1个回答
0
投票

基本上你的子集方法是正确的。但是,您必须删除或重命名用于分面的列:

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

© www.soinside.com 2019 - 2024. All rights reserved.