使用cowplot将条形图(stat = identity)缝合到使用cowplot的点图 - 错误

时间:2016-10-20 15:45:44

标签: r ggplot2 cowplot

当我尝试使用牛皮画将条形图和点图拼接在一起时,我遇到了错误。如果有要求,我可以尝试将一个工作示例放在一起,但我想我首先要看看是否有人能发现一个明显的问题。

条形图的代码和结果图如下:

dodge=position_dodge(width=0.9)
pbar <- ggplot(data = dat,aes(x=npnts,y=power,fill=PrpSurvPerYr)) +
  geom_bar(aes(fill=PrpSurvPerYr),stat="identity",colour="black",position=dodge) +
  geom_hline(yintercept=80,linetype="dotted",size=1) +
  ylab("Power") + xlab("Number of points per transect") +
  scale_fill_manual(values = c("white","gray","black")) +
  scale_y_continuous(breaks=seq(0,100,by=20)) +
  theme(axis.text.x=element_text(size=20)) +
  theme(axis.text.y=element_text(size=20)) +
  theme(axis.title.x=element_text(size=30)) +
  theme(axis.title.y=element_text(size=30)) +
  geom_text(aes(label=ntrns),vjust=-0.3,size=8,position=dodge)+
  labs(fill="% transects \nsurveyed \nper year") +
  theme(legend.title=element_text(size=20)) +
  theme(legend.text=element_text(size=18))

Bar plot

点图的代码和结果图如下:

ptrd <- ggplot(data = dat.plt,aes(x=X,y=med)) +
  geom_point(size=3,alpha=0.3) +
  geom_errorbar(aes(ymin=lo,ymax=hi),width=0.003,alpha=0.3) +
  geom_hline(yintercept=0.98,linetype="dotted") +
  scale_y_continuous(breaks=c(0.98)) +
  scale_x_continuous(breaks=c()) +
  ylab(expression(hat(lambda)[psi])) + xlab(NULL) +
  theme(axis.text.x=element_blank()) +
  theme(axis.title.x=element_blank()) +
  theme(axis.title.y=element_text(size=35)) +
  theme(axis.text.y=element_text(size=26))

Point plot 我试着将两者拼接在一起:

p <- ggdraw() +  
  draw_plot(pbar, x = 0, y = 0, width = 1, height = .0.75) + 
  draw_plot(ptrd, x = 0, y = 0.75, width = 1, height = .25)

不幸的是,我收到一个关于“未知常量”的错误,我甚至无法很好地查看错误,因为它后面有大量的输出会超出允许的控制台空间。

任何想法都会受到赞赏。

1 个答案:

答案 0 :(得分:0)

好吧,我开始生成一个可重现的示例,并在我的脚本中发现错误:我有一个&#34; .0.75&#34;因为身高&#39;在第一个'draw_plot&#39;命令。

猜猜我只是需要停止懒惰,并在发布之前完成生成可重现示例的过程。这可能是大多数这类错误被捕获的步骤。很抱歉浪费你的注意力和时间。