控制要包含在facet_grid中的样本

时间:2018-04-08 14:01:47

标签: r ggplot2

我想根据pairs将数据拆分为两个方面。包含在构面对中的样本=是,也应该在构面对中绘制=无。 默认情况下,ggplot不会执行此操作,而是在一个构面中绘制的样本不会在另一个构面中绘制。

ggplot(df,aes(type,as.numeric(value), fill=type)) + geom_boxplot() + facet_grid(~pairs)


            type  value                     pairs
1           Tumor 13.9012545838285          None
2           Normal 11.0978149433342         None
3           Normal 12.9807255911136         None
4           Tumor 17.7120374094025          None
5           Tumor 18.4255385552523          None
7           Tumor 14.4260579858951          Yes
8           Normal 14.4260579858951         Yes

1 个答案:

答案 0 :(得分:0)

您是否可以创建一个虚拟变量,仅表示您希望每个样本参与哪个方面?

ggplot(data.df,aes(type,as.numeric(value), fill=type)) +
    geom_boxplot(data=data.df%>%mutate(whichfacet="f1")) + #all samples participate in facet f1
    geom_boxplot(data=data.df%>%filter(pairs=="Yes")%>%mutate(whichfacet="f2")) + #only yes samples in facet f2
    facet_grid(.~whichfacet)