knitr::opts_chunk$set( collapse = TRUE, comment = "#>", fig.path = "README-", warning = FALSE, message = FALSE )
based off of Chris Given d3.js
zoomable interactive treemap bar
#devtools::install_github("timelyportfolio/treebar") library(stringr) library(treebar) library(jsonlite) ## make it a more generic hierarchy ## normally this step is not necessary json <- str_replace_all( readLines(system.file("example/data.json",package="treebar")), "(country)|(continent)|(year)|(type)", "id" ) data <- fromJSON(json, simplifyDataFrame=FALSE) treebar(data)
# also allows different treemap tiling options library(htmltools) browsable( tagList( lapply( c("Squarify", "Binary", "SliceDice", "Slice", "Dice"), function(tile){ tags$div( style = "float:left; display:inline;", tags$h3(tile), treebar( data, tile = tile, height = 250, width = 400 ) ) } ) ) )
# use different key for id and value json <- str_replace_all( readLines("./inst/example/data.json"), "(country)|(continent)|(year)|(type)", "name" ) json <- str_replace_all( json, "(value)", "size" ) data <- fromJSON(json, simplifyDataFrame=FALSE) treebar(data, value="size", id="name")
#devtools::install_github("timelyportfolio/treebar") library(stringr) library(treebar) library(jsonlite) library(shiny) ## make it a more generic hierarchy ## normally this step is not necessary json <- str_replace_all( readLines(system.file("example/data.json",package="treebar")), "(country)|(continent)|(year)|(type)", "id" ) data <- fromJSON(json, simplifyDataFrame=FALSE) shinyApp( ui = htmlwidgets::onRender( treebar(data), htmlwidgets::JS( ' function(el, x){ var chart = HTMLWidgets.getInstance(el).instance.treebar; chart.on("nodeMouseover", function(d,i){ Shiny.onInputChange("treebar_mouseover", d.data); }); } ' ) ), server = function(input, output, session){ observeEvent(input$treebar_mouseover,{ print(input$treebar_mouseover) }) } )
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.