Skip to contents

Declarative-API equivalent of hd_spec() for venn and euler diagrams. Wraps a pre-built set list inside an hd_spec object so it can be passed to hd_make() using the same spec / opts / hd_make() pattern as every other highdir geometry.

Usage

hd_spec_venn(sets)

Arguments

sets

A non-empty list of set entries built with hd_venn_set() and hd_venn_intersect(), or raw named lists following the format: list(sets = list("A"), name = "Label", value = 5).

Value

An S3 object of class c("hd_spec_venn", "hd_spec").

Usage with hd_make()

sets <- list(
  hd_venn_set("A", "Oslo",   120),
  hd_venn_set("B", "Bergen",  95),
  hd_venn_intersect(c("A","B"), 40)
)

spec_v <- hd_spec_venn(sets)
opts_v <- hd_opts(title = "City overlap")

# Declarative API - identical pattern to every other geom
hd_make(spec_v, "venn", opts_v)                       # highcharter
hd_make(spec_v, "venn", opts_v, backend = "static")  # ggplot2

Compared to the composable API

Both approaches produce identical output. Use whichever fits your workflow:

# Declarative (hd_spec / hd_opts / hd_make)
hd_make(hd_spec_venn(sets), "venn", hd_opts(title = "City overlap"))

# Composable (hd / + / hd_geom_venn)
hd(backend = "dynamic") +
  hd_geom_venn(sets = sets) +
  hd_opts(title = "City overlap")

Examples

# \donttest{
sets <- list(
  hd_venn_set("A", "Oslo",   value = 120),
  hd_venn_set("B", "Bergen", value = 95),
  hd_venn_intersect(c("A", "B"), value = 40)
)
spec_v <- hd_spec_venn(sets)
opts_v <- hd_opts(title = "City overlap")

hd_make(spec_v, "venn", opts_v)
hd_make(spec_v, "venn", opts_v, backend = "static") hd_make(hd_spec_venn(sets), "venn", hd_opts(title = "City overlap"))
# }