js229 / Vennerable

Vennerable provides Venn diagrams in R. It displays Venn and Euler diagrams for up to 9 different sets and using a variety of geometries. It allows the display of area-weighted Venn diagrams and allows fine graphical control over the result.
89 stars 39 forks source link

Conisder Using ggplot2 as Framework #30

Open DarioS opened 8 years ago

DarioS commented 8 years ago

The newest release version of ggplot2 has an extension API. It would be convenient to be able to store a plot in a variable and modify it later. Currently,

> X <- plot(elementsList)
> str(X)
List of 3
 $ path: NULL
 $ name: chr "Vennmar"
 $ n   : int 1
 - attr(*, "class")= chr [1:2] "vpPath" "path"

it doesn't contain anything useful.

If the return value was a grob and a ggplot2 object, it would be user-friendly to allow:

X + scale_colour_manual(values = c("Set 1" = "green", "Set 2" = "yellow")) # Change the circle line colour.
X + scale_fill_manual(values = c("Set 1" = "green", "Set 2" = "yellow")) # Change the circle fill colour.

It would also then work with grid.arrange from gridExtra, allowing multiple Venn diagrams to be laid out neatly.

js229 commented 8 years ago

Dario, thanks for pointing this out - I did want to provide this in the original version but couldn't work out how to. Sounds like it should be easier now, and it will probably be the first thing I change, which I am planning to do next year; if you want to contribute patches instead that would be great and probably will be quicker but let me know so we don't duplicate.

Jonathan

On 22 December 2015 at 04:00, DarioS notifications@github.com wrote:

The newest release version of ggplot2 has an extension API https://cranr-projectorg/web/packages/ggplot2/vignettes/extending-ggplot2html It would be convenient to be able to store a plot in a variable and modify it later Currently,

X <- plot(elementsList) str(X) List of 3 $ path: NULL $ name: chr "Vennmar" $ n : int 1

  • attr(*, "class")= chr [1:2] "vpPath" "path"

it doesn't contain anything useful

If the return value was a grob and a ggplot2 object, it would be user-friendly to allow:

X + scale_colour_manual(values = c("Set 1" = "green", "Set 2" = "yellow")) # Change the circle line colour X + scale_fill_manual(values = c("Set 1" = "green", "Set 2" = "yellow")) # Change the circle fill colour

It would also then work with gridarrange from gridExtra http://cranr-projectorg/web/packages/gridExtra/indexhtml, allowing multiple Venn diagrams to be laid out neatly

— Reply to this email directly or view it on GitHub https://github.com/js229/Vennerable/issues/30.

DarioS commented 8 years ago

I am in the last 3 months of my PhD degree, so I won't be able to attempt this.