Отображение нескольких графиков корреляции с использованием цикла [duplicate]

Использование функции reshape:

reshape(dat1, idvar = "name", timevar = "numbers", direction = "wide")
7
задан Zach 19 October 2011 в 17:31
поделиться

3 ответа

Как говорили другие ответы, оберните каждый вызов qplot() в print() (это R FAQ 7.22 ). Причина в том, что ggplot не печатаются на графическом устройстве до тех пор, пока на них не вызывается print.ggplot. print() - это общая функция, которая отправляется в print.ggplot за кулисами.

Когда вы работаете в repl («read-оцените-print loop», aka shell), возвращаемое значение предыдущей строки ввода автоматически печатается с помощью неявного вызова print(). Вот почему qplot(mtcars[,Var], wt, data=mtcars, xlab=Var) работает на вас. Это не связано с областью действия или циклом for. Если бы вы отправили эту строку в другое место, которое не возвращается непосредственно к реплику, например, в функции, которая возвращает что-то еще, она ничего не сделает.

11
ответ дан Ben Bolker 22 August 2018 в 13:42
поделиться

Недавно я сделал что-то подобное, и подумал, что я бы назвал два дополнительных бита кода, которые помогли. Я включил эту строку в цикл for, чтобы сделать паузу R на мгновение (в данном случае через полсекунды) после печати каждого графика:

Sys.sleep(0.5)

В качестве альтернативы вместо просмотра графиков на экране , вы можете сохранить их непосредственно в файлы, а затем просматривать их на досуге. Или, в моем случае, я пытался оживить траекторию пчелы, которую мы отслеживали, поэтому я импортировал последовательность изображений в ImageJ и сохранил ее как анимированный gif.

library(ggplot2)
png(file="cars%d.png")
for(Var in names(mtcars)) {
print(qplot(mtcars[,Var], wt, data=mtcars, xlab=Var))
}
dev.off()
6
ответ дан James Waters 22 August 2018 в 13:42
поделиться

Добавить print:

library(ggplot2)
par(ask=TRUE)
for(Var in names(mtcars)) {
    print(qplot(mtcars[,Var], wt, data=mtcars, xlab=Var))
}

Для объяснения см. ответ Тависа Радда.

5
ответ дан ROLO 22 August 2018 в 13:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: