R函数创建和保存图形
R function to create and save graphic
我正在尝试创建并保存多个图形。我被困在 factoextra
包用于制作图表的情况下。
pca.plot<-function(x){
biplot<-paste(out_f,"\biplot.jpg", sep="")
jpeg(file=biplot, type="cairo")
fviz_pca_biplot(x, geom = "text")
dev.off()
}
这是一个从输入 pca 对象创建双标图的简单函数(使用 FactoMineR 包创建的 pca)
out_f 是先前定义的。
当我逐行 运行 脚本时,它起作用了。当我 运行 它作为脚本时,没有创建任何东西。
pca.plot<-function(x){
pve<-paste(out_f,"\proportion_of_variance_explained.jpg", sep="")
jpeg(file=pve, type="cairo")
barplot(x$eig[,2], names.arg=1:nrow(x$eig),
main = "Variances",
xlab = "Principal Components",
ylab = "Percentage of variances",
col ="steelblue")
lines(x = 1:nrow(x$eig), x$eig[, 2], type="b", pch=19, col = "red")
dev.off()
}
在这种情况下是没有问题的。有谁知道第一种情况为什么会出问题?
提前致谢,
约翰
factoextra制作的图是ggplot2。你应该使用 print(fviz_pca_biplot(res.pca)) 如下:
# Principal component analysis
data(iris)
res.pca <- prcomp(iris[, -5], scale = TRUE)
# This will do nothing
jpeg("biplot.jpg")
fviz_pca_biplot(res.pca)
dev.off()
# This will do the right thing
jpeg("biplot.jpg")
print(fviz_pca_biplot(res.pca))
dev.off()
祝你好运!
我正在尝试创建并保存多个图形。我被困在 factoextra
包用于制作图表的情况下。
pca.plot<-function(x){
biplot<-paste(out_f,"\biplot.jpg", sep="")
jpeg(file=biplot, type="cairo")
fviz_pca_biplot(x, geom = "text")
dev.off()
}
这是一个从输入 pca 对象创建双标图的简单函数(使用 FactoMineR 包创建的 pca) out_f 是先前定义的。 当我逐行 运行 脚本时,它起作用了。当我 运行 它作为脚本时,没有创建任何东西。
pca.plot<-function(x){
pve<-paste(out_f,"\proportion_of_variance_explained.jpg", sep="")
jpeg(file=pve, type="cairo")
barplot(x$eig[,2], names.arg=1:nrow(x$eig),
main = "Variances",
xlab = "Principal Components",
ylab = "Percentage of variances",
col ="steelblue")
lines(x = 1:nrow(x$eig), x$eig[, 2], type="b", pch=19, col = "red")
dev.off()
}
在这种情况下是没有问题的。有谁知道第一种情况为什么会出问题?
提前致谢, 约翰
factoextra制作的图是ggplot2。你应该使用 print(fviz_pca_biplot(res.pca)) 如下:
# Principal component analysis
data(iris)
res.pca <- prcomp(iris[, -5], scale = TRUE)
# This will do nothing
jpeg("biplot.jpg")
fviz_pca_biplot(res.pca)
dev.off()
# This will do the right thing
jpeg("biplot.jpg")
print(fviz_pca_biplot(res.pca))
dev.off()
祝你好运!