R 删除多面板中一个绘图的y轴“;cowplot“;但保持绘图的大小不变

R 删除多面板中一个绘图的y轴“;cowplot“;但保持绘图的大小不变,r,plot,cowplot,R,Plot,Cowplot,我已经用相同的y轴比例并排绘制了两个图,并使用cowplot将它们对齐。我想删除右侧绘图的y轴,但当我这样做时,此绘图将比左侧绘图宽(我希望绘图大小相同)。有人知道如何删除右图的y轴,但保持两个图的大小相同吗?任何帮助都将不胜感激。由于数据的性质,我不能使用刻面。我无法共享实际数据,也不知道如何模拟任何数据,但我希望这个问题不需要,我已经尽可能多地共享了代码。如果可能的话,我还想坚持使用cowplot。多谢各位 #code with y axis on both library

我已经用相同的y轴比例并排绘制了两个图,并使用cowplot将它们对齐。我想删除右侧绘图的y轴,但当我这样做时,此绘图将比左侧绘图宽(我希望绘图大小相同)。有人知道如何删除右图的y轴,但保持两个图的大小相同吗?任何帮助都将不胜感激。由于数据的性质,我不能使用刻面。我无法共享实际数据,也不知道如何模拟任何数据,但我希望这个问题不需要,我已经尽可能多地共享了代码。如果可能的话,我还想坚持使用cowplot。多谢各位

    #code with y axis on both 
    library(ggplot2)
    library(cowplot)
p1<-ggplot(clins, aes(x = Clinician, y = slope, ymin = slope - 2 * se, ymax = slope + 2 * se)) + geom_point(color="blue") + geom_errorbar(colour="blue") + scale_y_continuous(limits=c(-0.16,1), breaks=c(-0.16, 0.00, 0.25, 0.50, 0.75, 1.00), labels=c("", "0.00", "0.25", "0.50", "0.75", "1.00"), expand=c(0,0)) + theme(axis.ticks.y=element_line(colour=c("transparent", "black", "black", "black", "black", "black")), panel.border=element_rect(colour="black", fill=NA), text=element_text(family="Times New Roman", face="bold", size=12), panel.background=element_rect(fill="white"), panel.grid.major.x=element_blank(), panel.grid.major.y=element_line(size=.1, colour="black",linetype="dotted"), plot.title=element_text(hjust=0.5), axis.text.x=element_text(colour="black", angle=60, hjust=1), axis.text.y=element_text(colour="black")) + labs(y= "Slope")
p2<-ggplot(vigns, aes(x = Vignette, y = slope, ymin = slope - 2 * se, ymax = slope + 2 * se)) + geom_point(colour="red") + geom_errorbar(colour="red") + scale_y_continuous(limits=c(-0.16,1), breaks=c(-0.16, 0.00, 0.25, 0.50, 0.75, 1.00), labels=c("", "0.00", "0.25", "0.50", "0.75", "1.00"), expand=c(0,0)) + theme(axis.ticks.y=element_line(colour=c("transparent", "black", "black", "black", "black", "black")), panel.border=element_rect(colour="black", fill=NA), text=element_text(family="Times New Roman", face="bold", size=12), panel.background=element_rect(fill="white"), panel.grid.major.x=element_blank(), panel.grid.major.y=element_line(size=.1, colour="black",linetype="dotted"), plot.title=element_text(hjust=0.5), axis.text.x=element_text(colour="black", angle=20, hjust=1), axis.text.y=element_text(colour="black")) + labs(y= "Slope")
plot1<- plot_grid(p1, p2, align = 'h')
title<- ggdraw() + draw_label("Slope Coefficients by Clinician and Vignette", fontface='bold', fontfamily='Times New Roman')
svg("Plot1.svg",width=10,height=4.00)
plot_grid(title, plot1, ncol=1, rel_heights=c(0.1,1))
dev.off()

  #code with y axis removed for second plot
p3<-ggplot(vigns, aes(x = Vignette, y = slope, ymin = slope - 2 * se, ymax = slope + 2 * se)) + geom_point(colour="red") + geom_errorbar(colour="red", width=.15) + scale_y_continuous(limits=c(-0.16,1), breaks=c(-0.16, 0.00, 0.25, 0.50, 0.75, 1.00), labels=c("", "0.00", "0.25", "0.50", "0.75", "1.00"), expand=c(0,0)) + scale_x_discrete(expand=c(0,0)) + theme(axis.title.y=element_blank(), axis.text.y=element_blank(), axis.ticks.y=element_blank(), panel.border=element_rect(colour="black", fill=NA), text=element_text(family="Times New Roman", face="bold", size=12), panel.background=element_rect(fill="white"), panel.grid.major.x=element_blank(), panel.grid.major.y=element_line(size=.1, colour="black",linetype="dotted"), plot.title=element_text(hjust=0.5), axis.text.x=element_text(colour="black", angle=45, hjust=1))
plot2<- plot_grid(p1, p3, align = 'h')
title<- ggdraw() + draw_label("Slope Coefficients by Clinician and Vignette", fontface='bold', fontfamily='Times New Roman')
svg("Plot2.svg",width=10,height=4.00)
plot_grid(title, plot2, ncol=1, rel_heights=c(0.1,1))
dev.off()
#用y轴在两侧编码
图书馆(GG2)
图书馆(cowplot)

p1而不是
element\u blank
您可以尝试
element\u text(color=“white”)
作为轴标题和标签,以及
element\u line(color=“white”)
作为记号。谢谢you@AndrewGustar这是可行的,但现在两个情节之间有相当多的空白,这并不理想,你知道这个问题的解决方案或另一个解决方案不会在绘图之间产生空间吗?你可以坚持使用你的第一个解决方案,在绘图中添加
coord_fixed(ratio=x)
,然后玩
x
,直到它看起来合理为止。或者您可以在
plot\u grid
中使用
rel\u widths
选项。我尝试了这两种方法,但都没有达到我需要的效果。无论如何,谢谢你。我见过人们使用PAR和MAR,但不知道如何将其应用到我的代码中。它们被用于基础R图,损坏不了GPGOT。除了
cowplot
gridExtra
也做了类似的事情。