ggplot 中的小平面网格,R
facet-grid in ggplot, R
我正在尝试使用 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)
正如 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'
标签的标题条,这可能很方便。
很遗憾,如果没有您的数据样本,我无法为您展示示例。
一种不添加额外包的方法是使用 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")
我正在尝试使用 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)
正如 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'
标签的标题条,这可能很方便。
很遗憾,如果没有您的数据样本,我无法为您展示示例。
一种不添加额外包的方法是使用 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")