Nothing
knitr::opts_chunk$set( collapse = TRUE, comment = "#>" )
library(vchartr) library(dplyr)
Create a bar chart :
electricity_mix %>% filter(country == "South Korea") %>% arrange(desc(generation)) %>% vchart() %>% v_bar(aes(source, generation)) %>% v_specs_colors("#5E81AC") %>% v_scale_y_continuous(labels = format_num_d3(",", suffix = " TWh")) %>% v_labs( title = "South Korea electricity mix" )
Colorize bars :
electricity_mix %>% filter(country == "South Korea") %>% arrange(desc(generation)) %>% vchart() %>% v_bar(aes(source, generation, fill = source), serie_id = "bar") %>% v_specs(xField = "x", serie_id = "bar") %>% # <- use only 'x' aesthetic on x-axis v_specs_legend(visible = FALSE) %>% v_scale_fill_manual( c( "oil" = "#80549f", "coal" = "#a68832", "solar" = "#d66b0d", "gas" = "#f20809", "wind" = "#72cbb7", "hydro" = "#2672b0", "nuclear" = "#e4a701" ) )
Create a basic horizontal bar chart with :
vchart(top_generation) %>% v_bar( aes(country, electricity_generation), direction = "horizontal", label = list(visible = TRUE) ) %>% v_specs_colors("#8FBCBB") %>% v_labs( title = "Top electricity-generating countries", subtitle = "Data for 2023, source: Our World In Data" )
Highlight a specific bar in the chart :
vchart(top_generation) %>% v_bar( aes(country, electricity_generation), direction = "horizontal", bar = list( style = list( fill = JS("datum => datum.x == 'Japan' ? '#5E81AC' : '#88C0D0'") ) ) )
Or :
co2_emissions %>% filter(country == "China") %>% vchart() %>% v_bar( aes(year, co2_growth_prct), bar = list( style = list( fill = JS("datum => datum.y <= 0 ? 'forestgreen' : 'firebrick'") ) ) ) %>% v_specs_axes( position = "left", title = list( visible = TRUE, text = "Annual CO₂ emissions growth (%)", position = "start" ) ) %>% v_labs( title = "Annual percentage growth in total emissions of carbon dioxide (CO₂)" )
A grouped bar chart with specific colors and custom legend :
world_electricity %>% filter(type == "total") %>% vchart() %>% v_bar(aes(year, generation, fill = source)) %>% v_scale_color_manual(c( "Low carbon" = "#A3BE8C", "Fossil fuels" = "#4C566A" )) %>% v_specs_legend( title = list(text = "Source of electricity", visible = TRUE), orient = "right", position = "start", item = list(focus = TRUE) )
Stack bars :
world_electricity %>% filter(type == "total") %>% vchart() %>% v_bar(aes(year, generation, fill = source), stack = TRUE) %>% v_scale_color_manual(c("Low carbon" = "#A3BE8C", "Fossil fuels" = "#4C566A")) %>% v_specs_legend( title = list(text = "Source of electricity", visible = TRUE), orient = "right", position = "start", item = list(focus = TRUE) )
world_electricity %>% filter(type == "total") %>% vchart() %>% v_bar( aes(year, generation, fill = source), stack = TRUE, percent = TRUE ) %>% v_scale_color_manual( c("Low carbon" = "#A3BE8C", "Fossil fuels" = "#4C566A") ) %>% v_scale_y_continuous( min = 0, max = 1, labels = ".0%", labels_tooltip = "~s" )
electricity_mix %>% filter(source == "nuclear") %>% arrange(generation) %>% vchart() %>% v_bar( aes(country, generation), direction = "horizontal", data_id = "mydataid", bar = list( style = list(cornerRadius = c(5, 5, 5, 5), height = 10) ), barBackground = list( visible = TRUE, style = list(cornerRadius = c(5, 5, 5, 5), height = 10), state = list( hover = list( stroke = "#D9D9D9", lineWidth = 1 ) ) ) ) %>% v_specs_axes( position = "bottom", visible = FALSE ) %>% v_specs_axes( position = "left", domainLine = list(visible = FALSE), tick = list(visible = FALSE) ) %>% v_specs( padding = list(right = 50, left = 10), extensionMark = list( list( type = "text", dataId = "mydataid", visible = TRUE, style = list( text = JS("datum => Math.round(datum.y)"), fontSize = 12, x = JS("(datum, ctx) => { return ctx.getRegion().getLayoutRect().width + 10; }"), y = JS("(datum, ctx) => { return ctx.valueToY([datum.x]) + ctx.yBandwidth() / 2; }"), textBaseline = "middle", textAlign = "left", fill = "#595959", size = 20 ) ) ) ) %>% v_specs_tooltip( mark = list(title = list(visible = FALSE)), dimension = list(title = list(visible = FALSE)), style = list(shape = list(shapeType = "circle")) )
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.