--- title: "UpSet.js Venn and Euler Diagrams" author: "Samuel Gratzl" date: "`r Sys.Date()`" output: rmarkdown::html_vignette vignette: > %\VignetteIndexEntry{UpSet.js Venn and Euler Diagrams} %\VignetteEngine{knitr::rmarkdown} \usepackage[utf8]{inputenc} --- ```{r setup, include=FALSE} knitr::opts_chunk$set(echo = TRUE) ``` # UpSet.js R Widget - Venn Diagrams UpSet.js has a basic support for classical Venn and Euler diagrams for two or three sets. ```{r libraries} # devtools::install_url("https://github.com/upsetjs/upsetjs_r/releases/latest/download/upsetjs.tar.gz") library(upsetjs) ``` ## Basic User Interface ```{r, fig.width=9, fig.height=5, out.width="850px", tidy=TRUE, fig.align='center'} listInput <- list(one = c('a', 'b', 'c', 'e', 'g', 'h', 'k', 'l', 'm'), two = c('a', 'b', 'd', 'e', 'j'), three = c('a', 'e', 'f', 'g', 'h', 'i', 'j', 'l', 'm')) w <- upsetjsVennDiagram() %>% fromList(listInput) %>% interactiveChart() w ``` Euler diagrams are based on [venn.js](https://github.com/upsetjs/venn.js) thus supporting more than three sets but might result in unexpected results ```{r, fig.width=9, fig.height=5, out.width="850px", tidy=TRUE, fig.align='center'} we <- upsetjsEulerDiagram() %>% fromList(listInput) %>% interactiveChart() we ``` ## Input Formats same as for `upsetjs`: `fromList`, `fromDataFrame`, and `fromExpression` ## Data Intersections not possible to define since the number of sections in the Venn diagrams are fixed ## Interaction ### Interactivity same as `upsetjs` ### Selection same as `upsetjs` ## Queries same as `upsetjs` ## Attributes not supported ## Styling ### Theme same as `upsetjs` ### Title provided as a different function: `chartVennLabels` ```{r, fig.width=9, fig.height=5, out.width="850px", tidy=TRUE, fig.align='center'} upsetjsVennDiagram() %>% fromList(listInput) %>% chartVennLabels(title = "Chart Title", description = "this is a long chart description") ```