简体   繁体   English

ggplot2 boxplot刻面包装

[英]ggplot2 boxplot facet wrap

I am trying to use ggplot2 in R to construct a boxplot with different parameter sets in different panels or facets. 我试图在R中使用ggplot2在不同的面板或构面中构造具有不同参数集的箱形图。 In my input datatable, I have a column "process" which contains the parameter groupings. 在输入数据表中,我有一个“过程”列,其中包含参数分组。 When I plot using facet_wrap, though, all of the parameters are displayed for each facet, even though most have no data, even when I use drop=T. 但是,当我使用facet_wrap进行绘制时,即使大多数参数都没有数据,即使使用drop = T,也将为每个构面显示所有参数。

Below is my code, any suggestions will be very helpful! 以下是我的代码,任何建议都将非常有帮助!

ggplot(stRep, aes(x=Parameter, y=value, fill=Disease), facets=process) + 
  geom_boxplot(outlier.shape=NA) + 
  ylab("Posterior distribution") + 
  xlab("Parameter") + theme_bw() + 
  scale_fill_grey() + coord_flip() +  
  ylim(-6, 10) + 
  facet_wrap( ~ process, drop=T,  ncol=1)

Attached is a subset of data: 附带的是数据的子集:

> test[c(1:5, 39995:40005),]
            value           Parameter Disease              process
5001  -4.52611948 initial probability    tree   General parameters
5002   6.73178928      pers.intercept    tree          Persistence
5003   6.00318901      pers.intercept    tree          Persistence
5004  -4.05923658   pers. nei. effect    tree          Persistence
5005   0.05733596   pers. nei. effect    tree          Persistence
39995 -0.10238927    col. tick effect    corn Initial colonization
39996 -0.12752092    col. tick effect    corn Initial colonization
39997 -0.17067746    col. tick effect    corn Initial colonization
39998 -0.06580708    col. tick effect    corn Initial colonization
39999 -0.13382417    col. tick effect    corn Initial colonization
40000 -0.12990795    col. tick effect    corn Initial colonization
40001  0.22196724    col. Lyme effect    corn Initial colonization
40002  0.24598469    col. Lyme effect    corn Initial colonization
40003  0.26436187    col. Lyme effect    corn Initial colonization
40004  0.23429840    col. Lyme effect    corn Initial colonization
40005  0.22931861    col. Lyme effect    corn Initial colonization

It would be easier to test various options if you post some data. 如果发布一些数据,测试各种选项会更容易。

It does however sound like you should subset your data before you plot: 但是,听起来您应该在绘制之前将数据子集化:

stRep_no0s <- subset(stRep, value>0)

Then plot, using the options scales="free_x" as a substitute for drop=T as suggested by Stibu: 然后按照选项scales="free_x"建议,使用scales="free_x"选项代替drop=T进行绘图:

ggplot(stRep_no0s, aes(x=Parameter, y=value, fill=Disease), facets=process) + 
  geom_boxplot(outlier.shape=NA) + 
  ylab("Posterior distribution") + 
  xlab("Parameter") + theme_bw() + 
  scale_fill_grey() + coord_flip() +  
  ylim(-6, 10) + 
  facet_wrap( ~ process, scales="free_x",  ncol=1)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM