# plot.euler: Plot Euler and Venn diagrams In eulerr: Area-Proportional Euler and Venn Diagrams with Ellipses

## Description

Plot diagrams fit with `euler()` and `venn()` using `grid::Grid()` graphics. This function sets up all the necessary plot parameters and computes the geometry of the diagram. `plot.eulergram()`, meanwhile, does the actual plotting of the diagram. Please see the Details section to learn about the individual settings for each argument.

## Usage

 ``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29``` ```## S3 method for class 'euler' plot( x, fills = TRUE, edges = TRUE, legend = FALSE, labels = identical(legend, FALSE), quantities = FALSE, strips = NULL, main = NULL, n = 200L, adjust_labels = TRUE, ... ) ## S3 method for class 'venn' plot( x, fills = TRUE, edges = TRUE, legend = FALSE, labels = identical(legend, FALSE), quantities = TRUE, strips = NULL, main = NULL, n = 200L, adjust_labels = TRUE, ... ) ```

## Arguments

 `x` an object of class `'euler'`, generated from `euler()` `fills` a logical, vector, or list of graphical parameters for the fills in the diagram. Vectors are assumed to be colors for the fills. See `grid::grid.path()`. `edges` a logical, vector, or list of graphical parameters for the edges in the diagram. Vectors are assumed to be colors for the edges. See `grid::grid.polyline()`. `legend` a logical scalar or list. If a list, the item `side` can be used to set the location of the legend. See `grid::grid.legend()`. `labels` a logical, vector, or list. Vectors are assumed to be text for the labels. See `grid::grid.text()`. `quantities` a logical, vector, or list. Vectors are assumed to be text for the quantities' labels, which by default are the original values in the input to `euler()`. In addition to arguments that apply to `grid::grid.text()`, an argument `type` may also be used which should be a combination of `"counts"` and `"percent"`. The first item will be printed first and the second will be printed thereafter inside brackets. The default is `type = "counts"`. `strips` a list, ignored unless the `'by'` argument was used in `euler()` `main` a title for the plot in the form of a character, expression, list or something that can be sensibly converted to a label via `grDevices::as.graphicsAnnot()`. A list of length one can be provided, in which case its only element is used as the label. If a list of longer length is provided, an item named `'label'` must be provided (and will be used for the actual text). `n` number of vertices for the `edges` and `fills` `adjust_labels` a logical. If `TRUE`, adjustment will be made to avoid overlaps or out-of-limits plotting of labels, quantities, and percentages. `...` parameters to update `fills` and `edges` with and thereby a shortcut to set these parameters `grid::grid.text()`.

## Details

The only difference between `plot.euler()` and `plot.venn()` is that `quantities` is set to `TRUE` by default in the latter and `FALSE` in the former.

Most of the arguments to this function accept either a logical, a vector, or a list where

• logical values set the attribute on or off,

• vectors are shortcuts to commonly used options (see the individual parameters), and

• lists enable fine-grained control, including graphical parameters as described in `grid::gpar()` and control arguments that are specific to each argument.

The various `grid::gpar()` values that are available for each argument are:

 fills edges labels quantities strips legend main col x x x x x x fill x alpha x x x x x x x lty x lwd x lex x fontsize x x x x x cex x x x x x fontfamily x x x x x lineheight x x x x x font x x x x x

Defaults for these values, as well as other parameters of the plots, can be set globally using `eulerr_options()`.

If the diagram has been fit using the `data.frame` or `matrix` methods and using the `by` argument, the plot area will be split into panels for each combination of the one to two factors.

For users who are looking to plot their diagram using another package, all the necessary parameters can be collected if the result of this function is assigned to a variable (rather than printed to screen).

## Value

Provides an object of class `'eulergram'` , which is a description of the diagram to be drawn. `plot.eulergram()` does the actual drawing of the diagram.

`euler()`, `plot.eulergram()`, `grid::gpar()`, `grid::grid.polyline()`, `grid::grid.path()`, `grid::grid.legend()`, `grid::grid.text()`

## Examples

 ``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21``` ```fit <- euler(c("A" = 10, "B" = 5, "A&B" = 3)) # Customize colors, remove borders, bump alpha, color labels white plot(fit, fills = list(fill = c("red", "steelblue4"), alpha = 0.5), labels = list(col = "white", font = 4)) # Add quantities to the plot plot(fit, quantities = TRUE) # Add a custom legend and retain quantities plot(fit, quantities = TRUE, legend = list(labels = c("foo", "bar"))) # Plot without fills and distinguish sets with border types instead plot(fit, fills = "transparent", lty = 1:2) # Save plot parameters to plot using some other method diagram_description <- plot(fit) # Plots using 'by' argument plot(euler(fruits[, 1:4], by = list(sex)), legend = TRUE) ```

### Example output

```
```

eulerr documentation built on Sept. 6, 2021, 5:09 p.m.