【问题标题】:ggplot2 boxplot facet wrapggplot2 boxplot facet wrap
【发布时间】:2015-08-24 17:28:26
【问题描述】:

我正在尝试在 R 中使用 ggplot2 在不同的面板或方面构建具有不同参数集的箱线图。在我的输入数据表中,我有一列“进程”,其中包含参数分组。但是,当我使用 facet_wrap 绘图时,会显示每个方面的所有参数,即使大多数参数都没有数据,即使我使用 drop=T 也是如此。

以下是我的代码,任何建议都会非常有帮助!

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)

附件是数据的子集:

> 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

【问题讨论】:

  • 使用+facet_wrap(~process,scales="free_x",ncol=1) 是否符合您的要求? drop=T 表示不为没有数据的process 级别绘制构面。

标签: r ggplot2 boxplot facet-wrap


【解决方案1】:

如果您发布一些数据,测试各种选项会更容易。

不过,听起来您应该在绘制之前对数据进行子集化:

stRep_no0s <- subset(stRep, value>0)

然后按照 Stibu 的建议,使用选项 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)

【讨论】:

  • 是的, scales="free_x" 选项确实是我想要使用的,但不适用于 ggplot2 中的 coord_flip() 选项。有解决办法吗?
猜你喜欢
  • 1970-01-01
  • 2022-09-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多