Create interactive sunburst chart with the 'd2b' charting library.
sund2b(
data = NULL,
colors = NULL,
valueField = "size",
tooltip = NULL,
breadcrumbs = NULL,
rootLabel = NULL,
showLabels = FALSE,
width = NULL,
height = NULL,
elementId = NULL
)data in csv source,target form or in
nested d3 JSON hierarchy with `name:..., children:[];`. list, character,
or connection data will be assumed to be JSON.
data.frame data will be assumed to be csvdata and converted
to JSON by sunburstR:::csv_to_hier().
vector of strings representing colors as hexadecimal for
manual colors. If you want precise control of colors, supply a list
with range and/or domain. For advanced customization, supply
a JavaScript function.
character for the field to use to calculate size. The default
value is "size".
list of options for customizing the tooltip. See the helper
function sund2bTooltip for more information.
list of options for customizing the breadcrumb. See the helper
function sund2bBreadcrumb for more information.
character to label root node something other than 'root'.
logical to show labels on the slices. The default is FALSE.
height and width of sunburst htmlwidget containing div
specified in any valid CSS size unit.
string id as a valid CSS element id.
if(interactive()){
# The sund2b() API mirrors sunburst() with fewer arguments.
library(sunburstR)
# use a sample of the sequences csv data
sequences <- read.csv(
system.file("examples/visit-sequences.csv",package="sunburstR")
,header = FALSE
,stringsAsFactors = FALSE
)[1:200,]
# create a d2b sunburst
sund2b(sequences)
# show labels
sund2b(sequences, showLabels = TRUE)
# change the colors
# using d3.js categorical color scheme
sund2b(
sequences,
colors = htmlwidgets::JS("d3.scaleOrdinal(d3.schemeCategory20b)")
)
}
if (FALSE) {
# using RColorBrewer palette
sund2b(
sequences,
colors = list(range = RColorBrewer::brewer.pal(9, "Set3"))
)
# using a color column from the R dataset
# treemap has an amazing treecolors ability
library(treemap)
library(d3r)
rhd <- random.hierarchical.data()
tm <- treemap(
rhd,
index = paste0("index", 1:3),
vSize = "x",
draw = FALSE
)$tm
sund2b(
d3_nest(tm, value_cols = colnames(tm)[-(1:3)]),
colors = htmlwidgets::JS(
# yes this is a little different, so please pay attention
# "function(d) {return d.color}" will not work
"function(name, d){return d.color || '#ccc';}"
),
valueField = "vSize"
)
# use sund2b in Shiny
library(shiny)
ui <- sund2bOutput("sun")
server <- function(input, output, session) {
output$sun <- renderSund2b({
sund2b(sequences)
})
}
shinyApp(ui, server)
}