情节必须只包含一个面板;分面散点图上的边框图

时间:2017-12-13 03:59:47

标签: r ggplot2 cowplot

我对编程非常陌生,但我设法使用以下链接中的建议绕过散点图制作分面散点图和边框框图:http://www.lreding.com/nonstandard_deviations/2017/08/19/cowmarg/

我的问题是如何在我的刻面散点图上制作边缘箱图?

我的代码是:

CN<-read.csv("LfFlw.csv")
library(ggplot2)

简单的散点图:

ggplot(data=CN, aes(x=PlantOrder, y=CN, colour=Tissue))+geom_point()+facet_wrap(~Population, scales="free_x", nc=2)

Scatterplot黑白:

sc<-ggplot(data=CN, aes(x=PlantOrder, y=CN, shape=Tissue))+geom_point()+facet_wrap(~Population, scales="free_x", nc=2)
sc

带标记轴的散点图:

sc_lab<-sc+labs(x="Individual plants (ordered)", y="Cyanide (ug g^-1 dw)")
sc_lab

带有标记轴和经典主题的散点图:

sc_lab_th<-sc_lab+theme_classic()
sc_lab_th

带有标记轴的散点图和带有更改形状的经典主题:

s<-sc_lab_th+scale_shape_manual(values=c(8,2))
s

带有刻面和白色/灰色的Boxplot:

y_box <- axis_canvas(s, axis = "y") + geom_boxplot(data = CN, outlier.shape = 1, aes(x = 0, y = CN, fill=Tissue)) + 
  facet_wrap(~Population, scales="free_x", nc=2)+scale_fill_manual(values=c("white", "grey"))
y_box

library(cowplot)

ggdraw(insert_yaxis_grob(s, y_box, position = "left"))

在这里我最终得到了一个错误:

  

get_panel(grob)出错:Plot必须只包含一个面板

1 个答案:

答案 0 :(得分:0)

答案是:你做不到。 (至少不是通过axis_canvas() / insert_yaxis_grob()路由。错误消息告诉您到底发生了什么:函数insert_yaxis_grob()只能插入由单个面板组成的图。您已经制作了一个刻面图,其中包含多个面板。