View source: R/draw.pairwise.venn.R

draw.pairwise.venn | R Documentation |

Creates a Venn diagram with two sets. Creates Euler diagrams when the dataset meets certain conditions.

draw.pairwise.venn(area1, area2, cross.area, category = rep("", 2), euler.d = TRUE, scaled = TRUE, inverted = FALSE, ext.text = TRUE, ext.percent = rep(0.05, 3), lwd = rep(2, 2), lty = rep("solid", 2), col = rep("black", 2), fill = NULL, alpha = rep(0.5, 2), label.col = rep("black", 3), cex = rep(1, 3), fontface = rep("plain", 3), fontfamily = rep("serif", 3), cat.pos = c(-50, 50), cat.dist = rep(0.025, 2), cat.cex = rep(1, 2), cat.col = rep("black", 2), cat.fontface = rep("plain", 2), cat.fontfamily = rep("serif", 2), cat.just = rep(list(c(0.5, 0.5)), 2), cat.default.pos = "outer", cat.prompts = FALSE, ext.pos = rep(0, 2), ext.dist = rep(0, 2), ext.line.lty = "solid", ext.length = rep(0.95, 2), ext.line.lwd = 1, rotation.degree = 0, rotation.centre = c(0.5, 0.5), ind = TRUE, sep.dist = 0.05, offset = 0, cex.prop = NULL, print.mode = "raw", sigdigs = 3, ...)

`area1` |
The size of the first set |

`area2` |
The size of the second set |

`cross.area` |
The size of the intersection between the sets |

`category` |
A vector (length 2) of strings giving the category names of the sets |

`euler.d` |
Boolean indicating whether to draw Euler diagrams when conditions are met or not (Venn Diagrams with moveable circles) |

`scaled` |
Boolean indicating whether to scale circle sizes in the diagram according to set sizes or not (euler.d must be true to enable this) |

`inverted` |
Boolean indicating whether the diagram should be mirrored long the vertical axis or not |

`ext.text` |
Boolean indicating whether to place area labels outside the circles in case of small partial areas or not |

`ext.percent` |
A vector (length 3) indicating the proportion that a partial area has to be smaller than to trigger external text placement. The elements allow for individual control of the areas in the order of area1, area2 and intersect area. |

`lwd` |
A vector (length 2) of numbers giving the line width of the circles' circumferences |

`lty` |
A vector (length 2) giving the line dash pattern of the circles' circumferences |

`col` |
A vector (length 2) giving the colours of the circles' circumferences |

`fill` |
A vector (length 2) giving the colours of the circles' areas |

`alpha` |
A vector (length 2) giving the alpha transparency of the circles' areas |

`label.col` |
A vector (length 3) giving the colours of the areas' labels |

`cex` |
A vector (length 3) giving the size of the areas' labels |

`fontface` |
A vector (length 3) giving the fontface of the areas' labels |

`fontfamily` |
A vector (length 3) giving the fontfamily of the areas' labels |

`cat.pos` |
A vector (length 2) giving the positions (in degrees) of the category names along the circles, with 0 (default) at the 12 o'clock location |

`cat.dist` |
A vector (length 2) giving the distances (in npc units) of the category names from the edges of the circles (can be negative) |

`cat.cex` |
A vector (length 2) giving the size of the category names |

`cat.col` |
A vector (length 2) giving the colours of the category names |

`cat.fontface` |
A vector (length 2) giving the fontface of the category names |

`cat.fontfamily` |
A vector (length 2) giving the fontfamily of the category names |

`cat.just` |
List of 2 vectors of length 2 indicating horizontal and vertical justification of each category name |

`cat.default.pos` |
One of c('outer', 'text') to specify the default location of category names (cat.pos and cat.dist are handled differently) |

`cat.prompts` |
Boolean indicating whether to display help text on category name positioning or not) |

`ext.pos` |
A vector (length 1 or 2) giving the positions (in degrees) of the external area labels along the circles, with 0 (default) at 12 o'clock |

`ext.dist` |
A vector (length 1 or 2) giving how far to place the external area labels relative to its anchor point |

`ext.line.lty` |
A vector (length 1 or 2) giving the dash pattern of the lines connecting the external area labels to their anchor points |

`ext.length` |
A vector (length 1 or 2) giving the proportion of the lines connecting the external area labels to their anchor points actually drawn |

`ext.line.lwd` |
A vector (length 1 or 2) giving the width of the lines connecting the external area labels to their anchor points |

`rotation.degree` |
Number of degrees to rotate the entire diagram |

`rotation.centre` |
A vector (length 2) indicating (x,y) of the rotation centre |

`ind` |
Boolean indicating whether the function is to automatically draw the diagram before returning the gList object or not |

`sep.dist` |
Number giving the distance between circles in case of an Euler diagram showing mutually exclusive sets |

`offset` |
Number between 0 and 1 giving the amount of offset from the centre in case of an Euler diagram showing inclusive sets |

`cex.prop` |
A function or string used to rescale areas |

`print.mode` |
Can be either 'raw' or 'percent'. This is the format that the numbers will be printed in. Can pass in a vector with the second element being printed under the first |

`sigdigs` |
If one of the elements in print.mode is 'percent', then this is how many significant digits will be kept |

`...` |
Additional arguments to be passed, including |

Euler diagrams are drawn for mutually exclusive sets (`cross.area == 0`

), inclusive sets (`area1 == 0`

or `area2 == 0`

), and coincidental sets (`area1 == 0`

and `area2 == 0)`

if `euler.d == TRUE`

.
The function defaults to placing the larger set on the left. `inverted`

or `rotation.degree`

can be used to reverse this.

Returns an object of class gList containing the grid objects that make up the diagram. Also displays the diagram in a graphical device unless specified with ind = FALSE. Grid::grid.draw can be used to draw the gList object in a graphical device.

Hanbo Chen

# A simple two-set diagram venn.plot <- draw.pairwise.venn(100, 70, 30, c("First", "Second")); grid.draw(venn.plot); grid.newpage(); # Same diagram as above, but without scaling venn.plot <- draw.pairwise.venn(100, 70, 30, c("First", "Second"), scaled = FALSE); grid.draw(venn.plot); grid.newpage(); # A more complicated diagram Demonstrating external area labels venn.plot <- draw.pairwise.venn( area1 = 100, area2 = 70, cross.area = 68, category = c("First", "Second"), fill = c("blue", "red"), lty = "blank", cex = 2, cat.cex = 2, cat.pos = c(285, 105), cat.dist = 0.09, cat.just = list(c(-1, -1), c(1, 1)), ext.pos = 30, ext.dist = -0.05, ext.length = 0.85, ext.line.lwd = 2, ext.line.lty = "dashed" ); grid.draw(venn.plot); grid.newpage(); # Demonstrating an Euler diagram venn.plot <- draw.pairwise.venn( area1 = 100, area2 = 70, cross.area = 0, category = c("First", "Second"), cat.pos = c(0, 180), euler.d = TRUE, sep.dist = 0.03, rotation.degree = 45 ); # Writing to file tiff( filename = tempfile( pattern = 'Pairwise_Venn_diagram', fileext = '.tiff' ), compression = "lzw"); grid.draw(venn.plot); dev.off();

Embedding an R snippet on your website

Add the following code to your website.

For more information on customizing the embed code, read Embedding Snippets.