2013-05-05 2 views
0

Я использую R, и я использую другой скрипт в рамках одного мастер-скрипта. В соерседе сценария, у меня есть код, который выглядит следующим образом:Открытое графическое устройство в сценарии с исходным кодом?

pdf("Figs/bar_gni.pdf") 
m1table$Country1 <- reorder(m1table$Country, m1table$GNIpc2005) 
ggplot(m1table, aes(y=GNIpc2005, fill=Level)) + 
    geom_bar(aes(x=Country1), data=m1table, stat="identity") + 
    coord_flip() + 
    ggtitle("GNI Per Capita, 2005") + 
    xlab("Country") + 
    ylab("GNI per capita, Atlas method (current US$)") 
dev.off() 

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

Когда я запускаю исходный скрипт (открывая скрипт), все это работает отлично. Однако, когда я его источник, ни один из моих графиков не выводится. Кажется, он создает файлы, но он просто создает пустые файлы.

Любая обратная связь будет принята с благодарностью.

ответ

1

Графики ggplot отображаются только при печати их объектов.

В командной строке это происходит, когда вы вводите его. Так же, как печатая sqrt(2) печатает ответ, потому что командная строка автоматически вызывает print, делая ggplot(.)+geom_line(.) звонки print и что делает сюжет.

В сценарии результаты не распечатываются автоматически.

Завершите все ваши звонки ggplot с помощью print(ggplot(whatever)).

Это FAQ по R. http://cran.r-project.org/doc/FAQ/R-FAQ.html#Why-do-lattice_002ftrellis-graphics-not-work_003f

+0

Ах, не знал, что такое решетчатая графика, поэтому я просто забыл об этом. Позвольте мне попробовать. – RickyB

+0

С положительной стороны это означает, что вы можете хранить графики в объектах ('foo = ggplot (...)'), а затем вывести 'print (foo)' позже, чтобы отобразить их. В вашем случае сценарий с исходными текстами может быть функцией, которая возвращает объект plottable, который мастер-скрипт может построить в какое-то время. – Spacedman

+0

Я думаю, что это отличная идея, и ваше предложение сработало. Спасибо! – RickyB

Смежные вопросы