This function fits Venn diagrams using an interface that is almost identical to euler(). Strictly speaking, Venn diagrams are Euler diagrams where every intersection is visible, regardless of whether or not it is zero. In almost every incarnation of Venn diagrams, however, the areas in the diagram are also non-proportional to the input; this is also the case here.
venn(combinations,...)## Default S3 method:venn( combinations, input = c("disjoint","union"), names = letters[length(combinations)],...)## S3 method for class 'table'venn(combinations,...)## S3 method for class 'data.frame'venn( combinations, weights =NULL, by =NULL, sep ="_", factor_names =TRUE,...)## S3 method for class 'matrix'venn(combinations,...)## S3 method for class 'list'venn(combinations,...)
Arguments
combinations: set relationships as a named numeric vector, matrix, or data.frame (see methods (by class) )
...: arguments passed down to other methods
input: type of input: disjoint identities ('disjoint') or unions ('union').
names: a character vector for the names of each set of the same length as 'combinations'. Must not be NULL if combinations is a one-length numeric.
weights: a numeric vector of weights of the same length as the number of rows in combinations.
by: a factor or character matrix to be used in base::by() to split the data.frame or matrix of set combinations
sep: a character to use to separate the dummy-coded factors if there are factor or character vectors in 'combinations'.
factor_names: whether to include factor names when constructing dummy codes
Returns
Returns an object of class 'venn', 'euler' with items - ellipses: a matrix of h and k (x and y-coordinates for the centers of the shapes), semiaxes a and b, and rotation angle phi
original.values: set relationships in the input
fitted.values: set relationships in the solution
Methods (by class)
venn(default): a named numeric vector, with combinations separated by an ampersand, for instance A&B = 10. Missing combinations are treated as being 0.
venn(table): A table with max(dim(x)) \< 3.
venn(data.frame): a data.frame of logicals, binary integers, or factors.
venn(matrix): a matrix that can be converted to a data.frame of logicals (as in the description above) via base::as.data.frame.matrix().
venn(list): a list of vectors, each vector giving the contents of that set (with no duplicates). Vectors in the list do not need to be named.
Examples
# The trivial versionf1 <- venn(5, names = letters[1:5])plot(f1)# Using data (a numeric vector)f2 <- venn(c(A =1,"B&C"=3,"A&D"=0.3))# The table methodvenn(pain, factor_names =FALSE)# Using grouping via the 'by' argument through the data.frame methodvenn(fruits, by = list(sex, age))# Using the matrix methodvenn(organisms)# Using weightsvenn(organisms, weights = c(10,20,5,4,8,9,2))# A venn diagram from a list of sample spaces (the list method)venn(plants[c("erigenia","solanum","cynodon")])