在ggplot2中使用`facet_grid`时,突出显示/在某些绘图周围画一个框

时间:2019-10-11 07:40:47

标签: r ggplot2 facet-grid

我正在创建类似于

的绘图矩阵
ggplot(mpg, aes(displ, hwy)) + geom_point() + facet_grid(rows = vars(cyl), cols = vars(drv))

现在,我想以某种方式突出显示某些单独的图,例如cyl是5或6,而drvf的图。因此,理想情况下,可能看起来像这样:

enter image description here

但是我也可以通过将ggtheme设置为经典或类似外观来使这些面板具有不同的外观。

但是,我目前还不清楚如何在facet_grid生成的绘图矩阵内修改单个选择的绘图

1 个答案:

答案 0 :(得分:1)

从@joran答案中发现here,这就是我得到的:

已编辑[EDIT]代码以选择多个方面

    if(!require(tidyverse)){install.packages("tidyverse")}
    library(tidyverse)

    #dummy dataset

    df = data.frame(type = as.character(c("a", "b", "c", "d")),
                    id = as.character(c("M5", "G5", "A7", "S3")),
                    val = runif(4, min = 1, max = 10),
                    temp = runif(4))

    # use a rectangle to individually select plots
ggplot(data = df, aes(x = val, y = temp)) + 
  geom_point() +
  geom_rect(data = subset(df, type %in% c("b", "c") & id %in% c("A7","G5")), 
                          fill = NA, colour = "red", xmin = -Inf,xmax = Inf,
            ymin = -Inf,ymax = Inf) +
  facet_grid(type~id)

它不使用theme(),但看起来足够突出某些方面。

enter image description here