R: Plot a Venn Diagram

PlotVenn {DescTools} | R Documentation

## Plot a Venn Diagram

### Description

This function produces Venn diagrams for up to 5 datasets.

### Usage

    PlotVenn(x, col = "transparent", plotit = TRUE, labels = NULL)

### Arguments

`x` | the list with the sets to be analysed. Those can be factors or something coercable to a factor.
`col` | the colors for the sets on the plot.
`plotit` | logical. Should a plot be produced or just the results be calculated.
`labels` | special labels for the plot. By default the names of the list x will be used. If those are missing, the LETTERS A..E will be chosen. Set this argument to NA, if no labels at all should be plotted.

### Details

The function calculates the necessary frequencies and plots the venn diagram.

### Value

a list with 2 elements, the first contains a table with the observed frequencies in the given sets. The second returns a data.frame with the xy coordinates for the labels in the venn diagram, the specific combination of factors and the frequency in that intersection area. The latter can be 0 as well.

### Author(s)

Andri Signorell <andri@signorell.net>

### References

Venn, J. (1880): On the Diagrammatic and Mechanical Representation of Propositions and Reasonings. Dublin Philosophical Magazine and Journal of Science 9 (59): 1-18.

Edwards, A.W.F. (2004): Cogwheels of the mind: the story of Venn diagrams. JHU Press ISBN 978-0-8018-7434-5.

### Examples

    element <- function() paste(sample(LETTERS, 5, replace=TRUE), collapse="")
    group <- replicate(1000, element())

    GroupA <- sample(group, 400, replace=FALSE)
    GroupB <- sample(group, 750, replace=FALSE)
    GroupC <- sample(group, 250, replace=FALSE)
    GroupD <- sample(group, 300, replace=FALSE)

    x <- list(GroupA, GroupB, GroupC, GroupD)
    x

    PlotVenn(x=list(GroupA, GroupB))
    PlotVenn(x=list(Set_1=GroupA, Set_2=GroupB))
    PlotVenn(x=list(GroupA, GroupB), labels=c("English","Spanish"))

    PlotVenn(x=x[1:3])
    PlotVenn(x=x[1:4], col=SetAlpha(c("blue","red","yellow","green","lightblue"), 0.2))

    r.venn <- PlotVenn(x=x[1:5], col=SetAlpha(c("blue","red","yellow","green","lightblue"), 0.2))
    r.venn

[Package DescTools version 0.99.36 Index]