Calculates Venn and Euler Diagram

Description

venneuler calculates a Venn diagram from a set specification.

Usage

1
venneuler(combinations, weights, ...)

Arguments

combinations

This can be one of:

  • a character vector (specifies disjoint class combinations as class names separated by the ampersand & character – e.g. c("A","B","A&B"))

  • a named numeric vector (names specify class combinations and values specify weights – e.g. c(A=1, B=2, `A&B`=0.5))

  • a character matrix of two columns (specifies mapping of elements to sets – elements in the first column and set names in the second column, weights argument is ignored)

  • a logical or numeric matrix whose columns represent sets and co-occurrence is defined by non-zero (rep. TRUE) values in rows (weight for a row being 1 for logical matrices or the row sum for numeric matrices).

For convenience data frames can be passed instead of matrices and they will be coerced using as.matrix().

weights

If combinations is a character vector then this argument specifies the associated weights. It is ignored in all other cases.

...

Additional arguments (currently unused).

Value

An object of the class VennDiagram with following components:

centers

centers of the circles (columns are x and y coordinates)

diameters

diameters of the circles

colors

colors of the circles as values between 0 and 1

labels

labels of the circles

residuals

residuals (percentage difference between input intersection area and fitted intersection area)

stress

stress value for solution

stress01

.01 critical value for stress based on random data

stress05

.05 critical value for stress based on random data

Author(s)

Lee Wilkinson <leland.wilkinson@gmail.com>, R package: Simon Urbanek <simon.urbanek@r-project.org>

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
vd <- venneuler(c(A=0.3, B=0.3, C=1.1, "A&B"=0.1, "A&C"=0.2, "B&C"=0.1 ,"A&B&C"=0.1))
plot(vd)
# same as c(A=1, `A&B&C`=1, C=1)
m <- data.frame(elements=c("1","2","2","2","3"), sets=c("A","A","B","C","C"))
v <- venneuler(m)
plot(v)
m <- as.matrix(data.frame(A=c(1.5, 0.2, 0.4, 0, 0),
                          B=c(0  , 0.2, 0  , 1, 0),
                          C=c(0  , 0  , 0.3, 0, 1)))
# without weights
v <- venneuler(m > 0)
plot(v)
# with weights
v <- venneuler(m)
plot(v)

Want to suggest features or report bugs for rdrr.io? Use the GitHub issue tracker.