2017-07-22 5 views
0

J'utilise le code suivant pour générer un fichier EPSUtilisation de la bibliothèque (VennDiagram) pour enregistrer un fichier .EPS?

venn.plot = draw.triple.venn(area1=leftLen, area2=rightLen, area3=midLen, n12=(left_rightLen+allIntersectLen), n23=(right_midLen+allIntersectLen), n13=(left_midLen+allIntersectLen), n123=allIntersectLen, category = c("Left Leaning", "Right Leaning", "Central"), lty="blank", fill = c("blue", "red", "purple")) 

Comment puis-je enregistrer comme un fichier EPS? J'ai essayé de faire

setEPS() 
postscript(filePathForEpsFile) 
plot(venn.plot) 

Et j'obtiens une erreur. Comment suis-je censé sauvegarder ceci en tant que fichier EPS?

Répondre

0

Je peux être parti avec cette réponse, puisque vous ne fournissez pas un exemple reproductible; au moins, votre code venn.plot me donne ceci:

Error in draw.triple.venn(area1 = leftLen, area2 = rightLen, area3 = midLen, : 
    object 'leftLen' not found 

et ne nous fournissez pas l'erreur que vous obtenez. Cependant, en regardant comment vous appelez votre venn.plot, je pense que cela pourrait être le problème. Si vous regardez le VennDiagram reference manual vous pouvez voir que vous n'avez pas besoin (ou peut-être pas?) D'utiliser plot() pour tracer votre diagramme. Ils utilisent grid.draw().

Donc, essayez ceci sur l'un des exemples simples dans leur manuel:

library(VennDiagram) 
venn.plot <- draw.pairwise.venn(100, 70, 30, c("First", "Second")) 
plot(venn.plot) 

Ce code me donne l'erreur suivante.

Error in xy.coords(x, y, xlabel, ylabel, log) : 
    'x' is a list, but does not have components 'x' and 'y' 

Est-ce l'erreur dont vous avez parlé?

Le code suivant cependant

grid.draw(venn.plot) 

tire bien votre diagramme de Venn. ExampleVenn

Sur quoi ils lingette souvent l'ardoise avec

grid.newpage() 

pour éviter de traçage Venn au-dessus de Venn.

Sauvegarde du diagramme de Venn en EPS puis se résume simplement à ceci:

setEPS() 
postscript(file = "ExampleVenn.EPS", fonts = "serif") 
grid.draw(venn.plot) 
dev.off() 

I ajouté polices = "serif" à l'appel postscript pour éviter une erreur en disant

Error in grid.Call.graphics(L_text, as.graphicsAnnot(x$label), x$x, x$y, : 
    family 'serif' not included in postscript() device 

Lorsque vous obtenir cette erreur les étiquettes dans votre diagramme ne sont pas enregistrées dans le fichier EPS.
J'espère que cela aide à résoudre votre problème.