Сохранение точечной диаграммы в pdf в R

У меня возникают проблемы с сохранением точечной диаграммы в pdf, когда эта команда выполняется внутри функции.

Он отлично работает при обычном вызове:

df <- data.frame(a = runif(10), b = runif(10), c = runif(10), x = 1:10)  
pdf("test.pdf")  
dotplot(a + b + c ~ x, data = df, type = "l", auto.key=TRUE)  
dev.off()

Но если этот код находится внутри функции, он не будет работать и просто создаст пустой или пустой файл:

plotFunc <- function(model)  
{  
    pdf("test.pdf")  
    dotplot(a + b + c ~ x, data = model, type = "l", auto.key=TRUE)  
    dev.off()  
}
plotFunc(df)

Однако вызов функции без файловых команд приведет к успешной печати в графическом окне:

plotWinFunc <- function(model)  
{  
    dotplot(a + b + c ~ x, data = model, type = "l", auto.key=TRUE)  
}  
plotWinFunc(df)

Это наводит меня на мысль, что с dotplot() что-то не так, когда предполагается вывод в файл. И тип файла не имеет значения, я пробовал и с bmp, и с pdf, и ни один метод не работает.

Как я могу успешно записать точечный график в файл? Нужно ли использовать специальную команду из пакета решетки или у меня где-то ошибка?

Спасибо за любую помощь.


person Jared    schedule 16.02.2010    source источник


Ответы (1)


Только что понял, что мне нужно обернуть точечный график в print():

plotFunc <- function(model)    
{    
    pdf("test.pdf")    
    print(dotplot(a + b + c ~ x, data = model, type = "l", auto.key=TRUE))    
    dev.off()    
}  
plotFunc(df)

Кажется, это решило это.

person Jared    schedule 16.02.2010
comment
Я думаю, вы также можете обернуть его в plot() - person Tal Galili; 17.02.2010
comment
Да, я нашел это сразу после того, как отправил вопрос. Где-то в файле справки либо для точечной диаграммы, либо для решетки. - person Jared; 26.02.2010