Question

Cette question a déjà une réponse ici:

J'ai du mal à enregistrer un Dotplot sur PDF lorsque cette commande est effectuée à l'intérieur d'une fonction.

Cela fonctionne bien lorsqu'il est appelé normalement:

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

Mais si ce code est à l'intérieur d'une fonction, il ne fonctionnera pas et fabrique simplement un fichier vide ou vierge:

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

Cependant, l'appel de la fonction sans les commandes de fichiers s'imprimera avec succès dans la fenêtre graphique:

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

Cela m'amène à croire que quelque chose ne va pas avec dotplot () lorsqu'il est censé sortir dans un fichier. Et le type de fichier n'a pas d'importance, j'ai essayé avec BMP et PDF et aucune méthode ne fonctionne.

Comment puis-je écrire avec succès un Dotplot dans un fichier? Dois-je utiliser une commande spéciale du package de réseau ou ai-je une erreur quelque part?

Merci pour toute aide.

Était-ce utile?

La solution

Je viens de réaliser que je dois envelopper dotplot sur imprimer ():

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

Cela semble l'avoir résolu.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top