для (я в ххх) проблема ggplot - PullRequest
0 голосов
/ 02 апреля 2010

Это странно - я думаю?

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

Я действительно не знаю, как описать это как подходящее название - предложения по более описательному названию вопроса приветствуются.

Заранее спасибо

1 Ответ

6 голосов
/ 02 апреля 2010

Это не странно - ваш 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)
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...