Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/83.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:布局另存为png_R - Fatal编程技术网

R:布局另存为png

R:布局另存为png,r,R,我有四个图表(类型:ggplot2),并试图将它们保存为png。然而,当我运行下面的代码时,只有ch4被保存 png(filename = fname, width = 900, height = 600, units = 'px') layout(matrix(c(1,2,3,4), 2, 2, byrow = TRUE)) ch1 ch2 ch3 ch4 dev.off() 如果知道我做错了什么,我将不胜感激。使用网格。排列而不是布局: library(ggplot2) library(g

我有四个图表(类型:ggplot2),并试图将它们保存为png。然而,当我运行下面的代码时,只有ch4被保存

png(filename = fname, width = 900, height = 600, units = 'px')
layout(matrix(c(1,2,3,4), 2, 2, byrow = TRUE))
ch1
ch2
ch3
ch4
dev.off()

如果知道我做错了什么,我将不胜感激。

使用
网格。排列
而不是
布局

library(ggplot2)
library(gridExtra)
ch1 <- qplot(1,2)
ch2 <- qplot(1,2)
ch3 <- qplot(1,2)
ch4 <- qplot(1,2)

png(filename = "fname.png", width = 900, height = 600, units = 'px')
grid.arrange(ch1,ch2,ch3,ch4, ncol = 2)
dev.off()

使用
网格。排列
而不是
布局

library(ggplot2)
library(gridExtra)
ch1 <- qplot(1,2)
ch2 <- qplot(1,2)
ch3 <- qplot(1,2)
ch4 <- qplot(1,2)

png(filename = "fname.png", width = 900, height = 600, units = 'px')
grid.arrange(ch1,ch2,ch3,ch4, ncol = 2)
dev.off()

ggplot2图形可以使用
grid.arrange()
gridExtra
包在单个页面上进行布局,例如:

df <- data.frame(x=1:3, y=c(1, 4, 9))
p <- ggplot(df, aes(x, y))
p1 <- p + geom_point(colour="red")
p2 <- p + geom_point(colour="blue")
p3 <- p + geom_point(colour="green")
p4 <- p + geom_point(colour="purple")

library(gridExtra)
png(filename="test.png", width=600, height=600)
grid.arrange(p1, p2, p3, p4)
dev.off()

dfggplot2图形可以使用
grid.arrange()
gridExtra
包在一个页面上进行布局,例如:

df <- data.frame(x=1:3, y=c(1, 4, 9))
p <- ggplot(df, aes(x, y))
p1 <- p + geom_point(colour="red")
p2 <- p + geom_point(colour="blue")
p3 <- p + geom_point(colour="green")
p4 <- p + geom_point(colour="purple")

library(gridExtra)
png(filename="test.png", width=600, height=600)
grid.arrange(p1, p2, p3, p4)
dev.off()

df也许你应该在调用png()之前进行布局?如果它们是ggplot2绘图,你可能需要尝试
grid.arrange()
gridExtra
包中,我认为基本布局函数不起作用。adam.888,“ggplot”函数覆盖任何布局或视口规范,因此,您没有看到的是,这些“ggplot”命令中的每一个都在使用整个页面并覆盖上一个图表。也许您应该在调用png()之前进行布局?如果它们是ggplot2绘图,您可能需要从
gridExtra
包中尝试
grid.arrange()
,我认为基本布局函数不起作用。adam.888,“ggplot”函数会覆盖任何布局或视口规范,因此您看不到的是,每个“ggplot”命令都在使用整个页面并覆盖以前的图表。使用变量指定文件名不是问题。我一直都是这么做的,(键入:ggplot2)是在我写下第一个答案后添加的(或者至少我没有看到)。我相应地编辑了我的答案。如果你不再坚持“fname”是个问题,你的答案会很有帮助。OP声明正在生成输出,但只有最后一张图表被写入PNG文件。PNG文件显然正在输出,因此“fname”不需要修改。非常感谢您的帮助使用变量指定文件名不是问题。我一直都是这么做的,(键入:ggplot2)是在我写下第一个答案后添加的(或者至少我没有看到)。我相应地编辑了我的答案。如果你不再坚持“fname”是个问题,你的答案会很有帮助。OP声明正在生成输出,但只有最后一张图表被写入PNG文件。一个PNG文件正在输出,所以“fname”不需要修改。非常感谢您的帮助啊,很好。我开始怀疑什么时候会有人把你的评论打包成一个恰当的答案。“grid.arrange”函数肯定是这里要使用的函数,因为你不能为“ggplot”函数指定视口。啊,很好。我开始怀疑什么时候会有人把你的评论打包成一个恰当的答案。“grid.arrange”函数绝对是此处要使用的函数,因为您无法为“ggplot”函数指定视口。