The hardware and bandwidth for this mirror is donated by METANET, the Webhosting and Full Service-Cloud Provider.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]metanet.ch.
This is a HTMLWidget and Plot.ly Dash wrapper around the JavaScript library UpSet.js and an alternative implementation of UpSetR.
This package is part of the UpSet.js ecosystem located at the main Github Monorepo.
# CRAN version
install.packages('upsetjs')
# or
::install_url("https://github.com/upsetjs/upsetjs_r/releases/latest/download/upsetjs.tar.gz")
devtools
library(upsetjs)
<- list(one = c(1, 2, 3, 5, 7, 8, 11, 12, 13), two = c(1, 2, 4, 5, 10), three = c(1, 5, 6, 7, 8, 9, 10, 12, 13))
listInput upsetjs() %>% fromList(listInput) %>% interactiveChart()
see also UpSetJS.Rmd
library(shiny)
library(upsetjs)
<- list(one = c(1, 2, 3, 5, 7, 8, 11, 12, 13),
listInput two = c(1, 2, 4, 5, 10),
three = c(1, 5, 6, 7, 8, 9, 10, 12, 13))
<- fluidPage(
ui titlePanel("UpSet.js Shiny Example"),
upsetjsOutput("upsetjs1"),
)
<- function(input, output, session) {
server # render upsetjs as interactive plot
$upsetjs1 <- renderUpsetjs({
outputupsetjs() %>% fromList(listInput) %>% interactiveChart()
})
}
# Run the application
shinyApp(ui = ui, server = server)
see also Shiny Examples
library(dash)
library(dashHtmlComponents)
library(upsetjs)
<- Dash$new()
app
$layout(
apphtmlDiv(
list(
htmlH1("Hello UpSet.js + Dash"),
upsetjsDash(id = "upset") %>% fromList(list(a = c(1, 2, 3), b = c(2, 3)))
%>% interactiveChart(),
htmlDiv(id = "output")
)
)
)$callback(
appoutput = list(id = "output", property = "children"),
params = list(input(id = "upset", property = "selection")),
function(selection) {
sprintf("You selected \"%s\"", selection$name)
}
)
$run_server() app
TODO
see also Dash Examples
the package documentation is located at .
An introduction vignette is at
.
Besides the main UpSet.js plot also Venn Diagrams for up to five sets are supported. It uses the same input formats and has similar functionality in terms of interaction.
<- list(one = c(1, 2, 3, 5, 7, 8, 11, 12, 13), two = c(1, 2, 4, 5, 10), three = c(1, 5, 6, 7, 8, 9, 10, 12, 13))
listInput upsetjsVennDiagram() %>% fromList(listInput) %>% interactiveChart()
see also Venn.Rmd
Besides the main UpSet.js plot also a variant of a Karnaugh Map is supported. It uses the same input formats and has similar functionality in terms of interaction.
<- list(one = c(1, 2, 3, 5, 7, 8, 11, 12, 13), two = c(1, 2, 4, 5, 10), three = c(1, 5, 6, 7, 8, 9, 10, 12, 13))
listInput upsetjsKarnaughMap() %>% fromList(listInput) %>% interactiveChart()
see also KMap.Rmd
requirements:
npm i -g yarn
yarn install
yarn sdks vscode
yarn lint
yarn build
yarn style:r
yarn lint:r
yarn check:r
yarn build:r
or in R
::load_all()
devtools::style_pkg()
styler::lint_pkg()
lintr::check()
devtools::document()
devtools::build() devtools
R Package Website
will be automatically updated upon push
yarn docs:r
or in R
::build_site() devtools
use release-it
yarn release
Rscript -e "devtools::release()"
UpSet.js is a client only library. The library or any of its integrations doesn’t track you or transfers your data to any server. The uploaded data in the app are stored in your browser only using IndexedDB. The Tableau extension can run in a sandbox environment prohibiting any server requests. However, as soon as you export your session within the app to an external service (e.g., Codepen.io) your data will be transferred.
If you want to use UpSet.js for a commercial application or in a commercial environment, the commercial license is the appropriate license. Contact <span class="citation" data-cites="sgratzl">@sgratzl</span> for details.
This library is released under the GNU AGPLv3
version to
be used for private and academic purposes. In case of a commercial use,
please get in touch regarding a commercial license.
These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.