0

これは奇妙だと思いますか?

library(ggplot2)
tf <- which(sapply(diamonds, is.factor))
diamonds.tf <- diamonds[,tf]

ここまでは順調ですね。しかし、次に問題が発生します。

pl.f <- ggplot(diamonds.tf, aes(x=diamonds.tf[,i]))+
geom_bar()+
xlab(names(diamonds.tf[i]))

for (i in 1:ncol(diamonds.tf)) {
ggsave(paste("plot.f",i,".png",sep=""), plot=pl.f, height=3.5, width=5.5)
}

これにより、プロットが作業ディレクトリに保存されますが、x ラベルが間違っています。ggplot を直接呼び出すと正しいプロットが生成されるため、これは奇妙だと思います。

i <- 2
ggplot(diamonds, aes(x=diamonds[,i]))+geom_bar()+xlab(names(diamonds)[i])

これを適切なタイトルとして説明する方法がよくわかりません-より説明的な質問タイトルに関する提案は大歓迎です.

前もって感謝します

4

1 に答える 1

6

それは奇妙ではありません - あなたの pl.f はiパラメータとして取りません。実際、 を定義しないとi、コードを実行することさえできません。あなたは次のようなものが欲しいと思います

pl.f <- function(i)
   ggplot(diamonds.tf, aes(x=diamonds.tf[,i]))+
            geom_bar()+xlab(names(diamonds.tf[i]))

for (i in 1:ncol(diamonds.tf)) {
  p <- pl.f(i)
  ggsave(paste("plot.f",i,".png",sep=""), plot=p, height=3.5, width=5.5)
}
于 2010-04-02T00:16:02.787 に答える