Nothing
knitr::opts_chunk$set( collapse = TRUE, comment = "#>" )
library(vchartr) library(dplyr)
Add values for each items in the legend:
electricity_mix %>% filter(country == "France") %>% arrange(desc(generation)) %>% vchart() %>% v_pie(aes(x = source, y = generation)) %>% v_scale_color_manual(c( "oil" = "#80549f", "coal" = "#a68832", "solar" = "#d66b0d", "gas" = "#f20809", "wind" = "#72cbb7", "hydro" = "#2672b0", "nuclear" = "#e4a701" )) %>% v_specs_legend( orient = "right", data = JS( "items => {", sprintf( "var data = %s;", electricity_mix %>% filter(country == "France") %>% arrange(desc(generation)) %>% mutate( value = paste0(round(generation / sum(generation) * 100, 1), "%"), label = source ) %>% select(label, value) %>% with(setNames(as.list(value), label)) %>% jsonlite::toJSON(auto_unbox = TRUE) ), "return items.map(item => { item.value = data[item.label]; return item; });", "}" ), item = list( width = "20%", value = list( alignRight = TRUE, style = list( fill = "#333", fillOpacity = 1 ) ) ) )
Hover donut slices to reveal indicator card:
electricity_mix %>% filter(country == "France") %>% arrange(desc(generation)) %>% vchart() %>% v_pie( aes(x = source, y = generation), outerRadius = 0.8, innerRadius = 0.5, padAngle = 0.6, pie = list( state = list( hover = list( outerRadius = 0.85, stroke = "#000", lineWidth = 1 ) ) ) ) %>% v_specs_tooltip(visible = FALSE) %>% v_specs_indicator( visible = TRUE, trigger = "hover", limitRatio = 0.5, title = list( visible = TRUE, autoFit = TRUE, fitStrategy = "inscribed", style = list( fontWeight = "bolder", fill = "#888", text = JS("datum => datum !== null ? datum.x : ''") ) ), content = list( list( visible = TRUE, autoFit = TRUE, fitStrategy = "inscribed", style = list( fontWeight = "bolder", fill = "#000", text = JS("datum => datum !== null ? Math.round(datum.y) + 'TWh' : ''") ) ) ) ) %>% v_scale_color_manual(c( "oil" = "#80549f", "coal" = "#a68832", "solar" = "#d66b0d", "gas" = "#f20809", "wind" = "#72cbb7", "hydro" = "#2672b0", "nuclear" = "#e4a701" )) %>% v_specs_legend(visible = FALSE)
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.