首页 > 解决方案 > 在ggplot2中使用`facet_grid`时突出显示/在一些图周围画一个框

问题描述

我正在创建一个类似于

ggplot(mpg, aes(displ, hwy)) + geom_point() + facet_grid(rows = vars(cyl), cols = vars(drv))

现在,我想用一些方法来突出一些单独的图,比如5cyl或 6 和drv. f因此,理想情况下,这可能如下所示:

在此处输入图像描述

但我也会对那些通过设置ggtheme为经典或类似的面板具有不同外观感到满意。

但是,我非常不清楚如何在通过生成的图矩阵中修改单独选择的图facet_grid

标签: rggplot2facet-grid

解决方案


这里找到的@joran 答案,这就是我得到的:

[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(),但看起来很简单,可以突出一些方面。

在此处输入图像描述


推荐阅读