Problems with VennDiagram?

Sam picture Sam · Jan 9, 2013 · Viewed 9.9k times · Source

I have used the recipe given here with a lot of success. However, for past few days this does not seem to work. My sessionInfo() looks as follows:

R version 2.15.2 (2012-10-26)
Platform: x86_64-apple-darwin9.8.0/x86_64 (64-bit)

locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8

attached base packages:
[1] grid      stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] VennDiagram_1.5.1

loaded via a namespace (and not attached):
[1] tools_2.15.2 

I tried the following, and did not produce any result:

 require(VennDiagram)

 venn.diagram(list(B = 1:1800, A = 1571:2020),fill = c("red", "green"), alpha = c(0.5, 0.5), cex = 2,cat.fontface = 4,lty =2, fontfamily =3, filename = "trial2.emf")

But did not produce any result.

Am I doing anything wrong?

Answer

MattBagg picture MattBagg · Jan 10, 2013

One work-around is to use png() or pdf() to save the plot. We first confirm that we can draw the plot onscreen using grid.draw():

library(VennDiagram)
temp <- venn.diagram(list(B = 1:1800, A = 1571:2020),
    fill = c("red", "green"), alpha = c(0.5, 0.5), cex = 2,cat.fontface = 4,
    lty =2, fontfamily =3, filename = NULL)
grid.draw(temp)

Having confirmed that, all we need to do to save it is repeat the grid.draw() between pdf() and dev.off()

library(grDevices)

pdf(file="venn.pdf")
    grid.draw(temp)
dev.off()

As described in their help files, pdf() and png() have arguments for controlling things like the size of the image, improving control over image quality.