venndir: Directional Venn diagram

venndirR Documentation

Directional Venn diagram

Description

Directional Venn diagram

Usage

venndir(
  setlist,
  overlap_type = c("detect", "concordance", "each", "overlap", "agreement"),
  sets = NULL,
  set_colors = NULL,
  proportional = FALSE,
  show_labels = "Ncs",
  return_items = TRUE,
  show_items = c(NA, "none", "sign item", "sign", "item"),
  max_items = 3000,
  show_zero = FALSE,
  font_cex = c(1, 1, 0.8),
  show_label = NA,
  display_counts = TRUE,
  poly_alpha = 0.8,
  alpha_by_counts = FALSE,
  label_style = c("basic", "fill", "shaded", "shaded_box", "lite", "lite_box"),
  label_preset = "none",
  unicode = TRUE,
  big.mark = ",",
  curate_df = NULL,
  venn_jp = NULL,
  inside_percent_threshold = 0,
  item_cex = NULL,
  item_style = c("text", "gridtext"),
  item_buffer = -0.15,
  sign_count_delim = ": ",
  padding = c(3, 2),
  r = 2,
  segment_distance = 0.1,
  sep = "&",
  do_plot = TRUE,
  verbose = FALSE,
  debug = 0,
  circle_nudge = NULL,
  rotate_degrees = 0,
  ...
)

Arguments

setlist

list of named vectors, whose names represent set items, and whose values represent direction using values c(-1, 0, 1).

overlap_type

character value indicating the type of overlap logic:

  • "each" records each combination of signs;

  • "overlap" disregards the sign and returns any match item overlap;

  • "concordance" represents counts for full agreement, or "mixed" for any inconsistent overlapping direction;

  • "agreement" represents full agreement in direction as "agreement", and "mixed" for any inconsistent direction.

sets

integer index with optional subset of sets in setlist for the Venn diagram. This option is useful when defining consistent set_colors for all entries in setlist.

set_colors

character vector of R colors, or NULL (default) to use default colors defined by colorjam::rainbowJam().

proportional

logical (default FALSE) indicating whether to draw proportional Venn circles, also known as a Euler diagram. Proportional circles are not guaranteed to represent all possible overlaps. Proportional circles are determined by calling eulerr::eulerr(). Use shape="ellipse" for eulerr() to provide elliptical shapes.

show_labels

character string to define the labels to display, and where they should be displayed. The definition uses a single letter to indicate each type of label to display, using UPPERCASE to display the label outside the Venn shape, and lowercase to display the label inside the Venn shape. The default "Ncs" displays _N_ame (outside), _c_ount (inside), and _s_igned count (inside).

The label types are defined below:

  • _N_ame: "n" or "N" - the set name, by default it is displayed.

  • _O_verlap: "o" or "O" - the overlap name, by default it is hidden, because these labels can be very long, also the overlap should be evident in the Venn diagram already.

  • _c_ount: "c" or "C" - overlap count, independent of the sign

  • _p_ercentage: "p" or "P" - overlap percentage, by default hidden, but available as an option

  • _s_igned count: "s" or "S" - the signed overlap count, tabulated based upon overlap_type ("each", "concordant", "agreement", etc/)

  • _i_tems: "i" only, by default hidden. When enabled, item labels defined by show_items are spread across the specific Venn overlap region.

return_items

logical (default TRUE) indicating whether to return items in the overlap data. When FALSE item labels also cannot be displayed in the figure. The main reason not to return items is to conserve memory, for example if setlist is extremely large.

show_items

character used to define the item label, only used when the show_label entry includes "i" which enables item display inside the Venn diagram.

  • "item": shows only the item labels

  • "sign": shows only the sign of each item

  • "sign items": shows the sign and item together (or "item sign" will show the item, then the sign).

max_items

numeric (default 3000) indicating the maximum number of item labels to display when enabled.

show_zero

logical (default FALSE) indicating whether empty overlaps are labeled with count zero 0. When show_zero=TRUE the count zero label is displayed, otherwise no count label is shown.

font_cex

numeric vector recycled and applied in order:

  1. Set label

  2. Overlap count label

  3. Signed count label

The default c(1, 1, 0.8) defines the signed count label slightly smaller than other labels.

poly_alpha

numeric (default 0.8) value between 0 and 1, for alpha transparency of the polygon fill color. This value is ignored when alpha_by_counts=TRUE.

  • poly_alpha=1 is completely opaque (no transparency)

  • poly_alpha=0.8 is 80% opaque

alpha_by_counts

logical indicating whether to define alpha transparency to Venn polygon fill based upon the counts contained in each polygon. When TRUE the poly_alpha is ignored.

label_style

character string indicating the style for labels. Label color is adjusted based upon the determined background color, determined based upon the label fill color, and either the device background color, or Venn overlap fill color. There are pre-defined label styles.

  • "basic" no background shading

  • "fill" an opaque colored background

  • "shaded" a partially transparent colored background

  • "lite" a partially transparent lite background

  • "box" adds a dark border around the label region

label_preset

character deprecated in favor of show_labels. This argument is passed to venndir_label_style().

unicode

logical (default TRUE) indicating whether to display Unicode arrows for signed overlaps. Passed to curate_venn_labels(). Use unicode=FALSE if the signed label is not displayed properly. The most common causes: (1) the R console (terminal) is not configured to allow Unicode (UTF-8 or UTF-16) characters; (2) the display font does not contain Unicode characters in the font set.

big.mark

character (default ",") passed to format() to augment numeric labels.

curate_df

data.frame or NULL passed to curate_venn_labels(), used to customize the formatting of signed overlaps.

venn_jp

NULL or optional JamPolygon which contains one polygon for each setlist, intended to allow custom shapes to be used. Otherwise get_venn_polygon_shapes() is called.

inside_percent_threshold

numeric (default 0) indicating the percent area that a Venn overlap region must contain in order for the count label to be displayed inside the region, otherwise the label is displayed outside the region. Values are expected to range from 0 to 100.

item_cex

numeric value (default NULL) used to resize item labels.

  • When item_cex is a single value or NULL, auto-scaling is performed based upon the number of items in each overlap polygon, and the relative polygon areas. Any single numeric value for item_cex is multiplied by the auto-scaled value for each overlap region.

  • When two or more values are supplied as a vector, the values are recycled and applied across all Venn overlap regions, in the order they appear in signed_overlaps().

item_style

character string (default "text") indicating the style to display item labels when they are enabled.

  • "text" option is substantially faster, but does not allow markdown.

  • "gridtext": substantially slower for a large number of labels, but enables use of limited markdown by calling gridtext::richtext_grob(). Mostly useful for venn_meme().

item_buffer

numeric value (default -0.15) indicating the buffer adjustment applied to Venn overlap regions before arranging item labels. Passed to label_fill_JamPolygon() via render_venndir(). Negative values are recommended, so they shrink the region.

sign_count_delim

character string used as a delimiter between the sign and counts, when overlap_type is not "overlap".

padding

numeric padding in units "mm" (default c(3, 2)) for overlap count, and signed overlap count labels, in order.

r

numeric radius in units "mm" used for rounded rectangle corners for labels. Only visible when label_preset includes a background fill ("lite", "shaded", "fill"), or "box".

segment_distance

numeric value indicating the distance between outside labels and the outer edge of the Venn diaram region. Larger values place labels farther away, while also shrinking the relative size of the Venn diagram.

sep

character used as a delimiter between set names, the default is "&".

do_plot

⁠logical (default TRUE) indicating whether to render the plot, or return data without rendering the plot. When ⁠do_plot=FALSE⁠the returned data can later be passed to⁠render_venndir()' to render the figure.

verbose

logical indicating whether to print verbose output.

debug

numeric optional internal debug.

circle_nudge

list of numeric x,y vectors. Not yet re-implemented after the version 0.0.30.900 update.

rotate_degrees

numeric value in degrees, allowing rotation of the Venn diagram. Not yet re-implemented after version 0.0.30.900.

...

additional arguments are passed to render_venndir().

See Also

Other venndir core: render_venndir(), signed_overlaps(), textvenn(), venn_meme()

Examples

setlist <- make_venn_test(100, 3, do_signed=FALSE);

setlist <- make_venn_test(100, 3, do_signed=TRUE);
vo <- venndir(setlist)
jamba::sdim(vo);

vobase <- venndir(setlist, debug=3)


jmw86069/venndir documentation built on June 15, 2024, 1:52 p.m.