1

複数のグラフィックを作成して保存しようとしています。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 は事前に定義されています。スクリプトを 1 行ずつ実行すると、機能します。スクリプトとして実行すると、何も作成されません。

  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()   
}

この場合は問題ありません。最初のケースに問題がある理由を誰かが知っていますか?

前もって感謝します、ジョン

4

1 に答える 1

1

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()

幸運を!

于 2015-05-14T07:35:45.350 に答える