【问题标题】:facet-grid in ggplot, Rggplot中的分面网格,R
【发布时间】:2021-08-07 10:09:00
【问题描述】:

我正在尝试使用 ggplot 绘制分类数据,其中我有两个参数类别(C 和 C+Fe),我传递了 facet-grid 参数。 这是我的代码的一部分:

mediagene<-ggplot(ARG)+
geom_boxplot(aes(x = gene, y= RA, fill=type))+
ylab("Relative gene abundance\n copies/ 16s rRNA")+
theme_bw()+
facet_grid(parameter~.,switch="y")+
scale_fill_manual(values=cols)+
labs(fill="Saturation")

结果如下: enter image description here

现在我的问题是我如何才能只有顶部图(参数中只有 C 类)

【问题讨论】:

  • 你可以过滤你的数据集,例如使用dplyr::filter(ARG, parameter == "C")

标签: r facet-grid


【解决方案1】:

在不添加额外包的情况下执行此操作的一种方法是使用subset() 函数,如下所示:

mediagene<-ggplot(subset(ARG, parameter == 'C'))+
geom_boxplot(aes(x = gene, y= RA, fill=type))+
ylab("Relative gene abundance\n copies/ 16s rRNA")+
theme_bw()+
facet_grid(parameter~.,switch="y")+
scale_fill_manual(values=cols)+
labs(fill="Saturation")

【讨论】:

    【解决方案2】:

    正如 stefan 建议的那样,使用 dplyr::filter() 可以只保留数据中符合特定条件的行。

    在这种情况下,您只想保留parameter'C' 的数据,因此您可以执行以下操作来仅保留这些数据:

    ARG %>% 
      filter(
        parameter == 'C'
      ) 
    

    然后我们可以将这些数据发送到ggplot 进行绘图,通过:

    ARG %>% 
      filter(
        parameter == 'C'
      ) %>% 
      ggplot()+
      geom_boxplot(aes(x = gene, y= RA, fill=type))+
      ylab("Relative gene abundance\n copies/ 16s rRNA")+
      theme_bw()+
      facet_grid(parameter~.,switch="y")+
      scale_fill_manual(values=cols)+
      labs(fill="Saturation")
    

    在这种情况下,您将不再需要使用facet_grid(),因为无论如何您应该只有一个方面。但是,保留它会给您与带有'C' 标签的标题条相同的框,这可能很方便。

    很遗憾,如果没有您的数据样本,我无法为您展示示例。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-18
      • 1970-01-01
      • 2021-07-13
      相关资源
      最近更新 更多