Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
除了在R中使用ggpubr外,还有没有其他方法将3个图放在一起形成一幅图像?_R_Ggplot2_Ggpubr - Fatal编程技术网

除了在R中使用ggpubr外,还有没有其他方法将3个图放在一起形成一幅图像?

除了在R中使用ggpubr外,还有没有其他方法将3个图放在一起形成一幅图像?,r,ggplot2,ggpubr,R,Ggplot2,Ggpubr,我一直在使用下面的代码创建3个单独的绘图,然后在ggpubr包中使用ggarrange将它们组合成一个绘图,并将其保存为图像。然而,一旦我为我的脚本创建了一个Rmd,这个函数就变得非常易变,并且给了我一个错误“刻面变量必须至少有一个值”,即使它在Rmd之外运行良好。使用ggplot2包中的内容是否有不同的方法获得相同的结果?还是另一种更简单的方法? 编辑:我希望在我的图表中维护网格,而不是使用复杂的方式来获得cowplot所需的通用图例 graph_1 <- ggplot(subset(d

我一直在使用下面的代码创建3个单独的绘图,然后在ggpubr包中使用ggarrange将它们组合成一个绘图,并将其保存为图像。然而,一旦我为我的脚本创建了一个Rmd,这个函数就变得非常易变,并且给了我一个错误“刻面变量必须至少有一个值”,即使它在Rmd之外运行良好。使用ggplot2包中的内容是否有不同的方法获得相同的结果?还是另一种更简单的方法? 编辑:我希望在我的图表中维护网格,而不是使用复杂的方式来获得cowplot所需的通用图例

graph_1 <- ggplot(subset(data_p, Target == "1"), aes(x=as.integer(volume), y=percent_yield, color=Tech.Rep))+
  geom_point()+
  geom_smooth(se=FALSE)+
  facet_wrap(~sample)+
  ggtitle(paste("Graph 1"))+
  ylab("PERCENT YIELD")+
  scale_x_discrete(limits= levels(data_p$volume))+
  ylim(min=-150, max=150)+
  theme(axis.text.x=element_text(size=10,angle=85,hjust=1,vjust=1))+
  theme(legend.position="none")+
  geom_ribbon(aes(ymax=100, ymin=50), alpha = 0.2, fill="green", col="green")+
  geom_ribbon(aes(ymax=0, ymin=0), alpha = 0.2, fill="black", col="black", size=1.0)

graph_2 <- ggplot(subset(data_p, Target == "2"), aes(x=as.integer(volume), y=percent_yield, color=Tech.Rep))+
  geom_point()+
  geom_smooth(se=FALSE)+
  facet_wrap(~sample)+
  ggtitle(paste("Graph 2"))+
  ylab("PERCENT YIELD")+
  scale_x_discrete(limits= levels(data_p$volume))+
  ylim(min=-150, max=150)+
  theme(axis.text.x=element_text(size=10,angle=85,hjust=1,vjust=1))+
  theme(legend.position="none")+
  geom_ribbon(aes(ymax=100, ymin=50), alpha = 0.2, fill="green", col="green")+
  geom_ribbon(aes(ymax=0, ymin=0), alpha = 0.2, fill="black", col="black", size=1.0)


graph_3 <- ggplot(subset(data_p, Target == "3"), aes(x=as.integer(volume), y=percent_yield, color=Tech.Rep))+
  geom_point()+
  geom_smooth(se=FALSE)+
  facet_wrap(~sample)+
  ggtitle(paste("Graph 3"))+
  ylab("PERCENT YIELD")+
  scale_x_discrete(limits= levels(data_p$volume))+
  ylim(min=-150, max=150)+
  theme(axis.text.x=element_text(size=10,angle=85,hjust=1,vjust=1))+
  theme(legend.position="none")+
  geom_ribbon(aes(ymax=100, ymin=50), alpha = 0.2, fill="green", col="green")+
  geom_ribbon(aes(ymax=0, ymin=0), alpha = 0.2, fill="black", col="black", size=1.0)

ggarrange(graph_1, graph_2, graph_3, ncol=3, nrow=1, common.legend=TRUE, legend= "bottom")

graph\u 1您可以尝试使用
cowplot
包中的
plot\u grid()
函数。你会发现一个套装小插曲

在你的情况下,试试看,
cowplot::plot\u grid(graph\u 1,graph\u 2,graph\u 3,ncol=3,align=“h”)
您还可以使用
grid.arrange()
包中的
grid.arrange()函数。这里有一个来自R博客的例子。这也是套餐的小插曲


尝试使用网格。排列(图1、图2、图3、ncol=3)

您可能想看看这个包

或者,如果所有绘图在图形元素方面具有相同的行数,则可以将绘图转换为gtables和cbind(或rbind)它们

library(grid)
p <- p <- ggplot(iris, aes(Petal.Length, Sepal.Length)) + 
  geom_point() + 
  facet_wrap(~ Species, nrow = 3)

grobs <- ggplotGrob(p)

multi <- cbind(grobs, grobs, grobs, size = "first")

grid.newpage(); grid.draw(multi)
库(网格)

p相关:可能是重复的,这个软件包似乎不适用于R版本3.5.2Aw,对不起,我不知道。希望你能找到解决办法!这个软件包在我的图表中删除了网格,并且似乎有一个很长的方法来获得一个普通的图例。我可能错了,所以请纠正我,如果是的话。我尽量少用几行,以减少以后出现这种情况的可能性