Plotting in R: как создать pdf с использованием plot.xts внутри функции - PullRequest
1 голос
/ 03 апреля 2019

Итак, вот моя проблема: если я запускаю следующее в глобальной среде, все работает как положено:

pdf("~/test.pdf")
plot.xts(xts(x = runif(10), order.by = Sys.Date() + 0:9))
dev.off()

Однако я хотел бы вывести xts-графики в pdf через функции, т. Е. Делать

plot_test <- function(){
    pdf("~/test.pdf")
    plot.xts(xts(x = runif(10), order.by = Sys.Date() + 0:9))
    dev.off()
}
plot_test()

Моя проблема в том, что когда я делаю это, полученный pdf пустой. Эта проблема, кажется, специфична для plot.xts, потому что встроенные функции построения графиков R работают, когда реализованы таким образом.

Я попытался поиграться с dev.set, dev.new и т. Д., Но не могу понять, в чем проблема. Я предполагаю, что это как-то связано с plot.xts, не записывающим данные на устройство, инициированное pdf ()

1 Ответ

0 голосов
/ 03 апреля 2019

Вы должны использовать «печать», когда находитесь внутри функции.

plot_test <- function(){
    pdf("~/test.pdf")
    print(plot.xts(xts(x = runif(10), order.by = Sys.Date() + 0:9)))
    dev.off()
}
plot_test()
...