Nothing
## ----include = FALSE----------------------------------------------------------
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>"
)
## ----setup--------------------------------------------------------------------
library(ddplot)
## ----fig.align='center', message=FALSE, warning=FALSE-------------------------
library(ggplot2) # needed for the mpg data frame
scatter_plot(
data = mpg,
x = "hwy",
y = "cty",
xtitle = "hwy variable",
ytitle = "cty variable",
title = "cty and hwy relationship",
titleFontSize = 20
)
## ----fig.align='center'-------------------------------------------------------
scatter_plot(
data = mpg,
x = "displ",
y = "cty",
col = "tomato",
bgcol = "pink",
size = 3,
stroke = "royalblue",
strokeWidth = 1,
xtitle = "displ variable",
ytitle = "cty variable",
xticks = 3,
yticks = 3)
## -----------------------------------------------------------------------------
histogram(
x = mpg$hwy,
bins = 20,
fill = "crimson",
stroke = "white",
strokeWidth = 1,
title = "Distribution of the hwy variable",
width = "20",
height = "10"
)
## -----------------------------------------------------------------------------
animated_histogram(
x = mpg$hwy,
duration = 2000,
delay = 100,
fill = "lime",
stroke = "white",
bgcol = "white"
)
## -----------------------------------------------------------------------------
flower(
petalCount = 7,
petalColor = "plum",
rotationSpeed = 0
)
## -----------------------------------------------------------------------------
flower(
petalCount = 15,
petalWidth = 20,
petalColor = "plum",
rotationSpeed = 1.5
)
## -----------------------------------------------------------------------------
heart_fill(fill_level = 0.8, titleText = NULL, renderFillLabel = FALSE)
## -----------------------------------------------------------------------------
glass_fill(fill_level = 0.8, titleText = "Glass of water", renderFillLabel = TRUE)
## -----------------------------------------------------------------------------
plant_growth(0.4)
## -----------------------------------------------------------------------------
plant_growth(1)
## -----------------------------------------------------------------------------
workload_grid <- data.frame(
hour = c("09:00","12:00","15:00","18:00",
"09:00","12:00","15:00","18:00",
"09:00","12:00","15:00","18:00"),
team = c("North","North","North","North",
"South","South","South","South",
"East","East","East","East"),
load = c(0.35,0.72,0.56,0.91,
0.41,0.67,0.83,0.58,
0.28,0.49,0.77,0.63),
stringsAsFactors = FALSE
)
pulse_grid(
data = workload_grid,
x = "hour",
y = "team",
value = "load",
title = "Support Team Load Through the Day",
low = "#D9F0FF",
high = "red",
bgcol = "#0B132B",
stroke = "#1C2541",
strokeWidth = 1.5,
pulseStrength = 0.22
)
## -----------------------------------------------------------------------------
reliability_grid <- data.frame(
day = c(
"Mon","Tue","Wed","Thu","Fri",
"Mon","Tue","Wed","Thu","Fri",
"Mon","Tue","Wed","Thu","Fri",
"Mon","Tue","Wed","Thu","Fri"
),
service = c(
"API","API","API","API","API",
"Billing","Billing","Billing","Billing","Billing",
"Search","Search","Search","Search","Search",
"Auth","Auth","Auth","Auth","Auth"
),
incident_score = c(
0.62, 0.44, 0.57, 0.78, 0.69,
0.31, 0.36, 0.40, 0.51, 0.47,
0.73, 0.81, 0.76, 0.88, 0.67,
0.22, 0.27, 0.25, 0.34, 0.29
),
stringsAsFactors = FALSE
)
pulse_grid(
data = reliability_grid,
x = "day",
y = "service",
value = "incident_score",
title = "Service Reliability Pressure Map",
low = "lightgreen",
high = "#B00020",
bgcol = "#081C15",
labelColor = "#F1FAEE",
titleColor = "#F1FAEE",
stroke = "#2D6A4F",
showValues = TRUE,
digits = 2
)
## -----------------------------------------------------------------------------
flame(
intensity = 20,
flameGradientColors = c("yellow", "orange", "darkred"),
flameOutline = "darkred",
bgcol = "#fefefe"
)
## -----------------------------------------------------------------------------
flame(
intensity = 80,
flameGradientColors = c("green", "darkgreen", "darkblue"),
flameOutline = "#fefefe",
bgcol = "black"
)
## -----------------------------------------------------------------------------
# The data is a toy example and does not reflect the reality
vote_results_germany <- data.frame(
political_party = c("SDP", "CDU", "Linke", "Grüne"),
number_of_seats = c(200, 40, 30, 20)
)
parliament_chart(
data = vote_results_germany,
categorical_column = "political_party",
numerical_column = "number_of_seats",
title = "German Bundestag",
seatSize = 10,
bgcol = "#fefefe"
)
## ----message=FALSE, warning=FALSE---------------------------------------------
library(dplyr)
mpg %>% group_by(manufacturer) %>%
summarise(mean_cty = mean(cty)) %>%
bar_chart(
x = "manufacturer",
y = "mean_cty",
xFontSize = 10,
yFontSize = 10,
fill = "orange",
strokeWidth = 2,
ytitle = "average cty value",
title = "Average City Miles per Gallon by manufacturer"
)
## ----message=FALSE, warning=FALSE---------------------------------------------
mpg %>% group_by(manufacturer) %>%
summarise(mean_cty = mean(cty)) %>%
bar_chart(
x = "manufacturer",
y = "mean_cty",
sort = "ascending",
xFontSize = 10,
yFontSize = 10,
fill = "orange",
strokeWidth = 1,
ytitle = "average cty value",
title = "Average City Miles per Gallon by manufacturer",
titleFontSize = 16
)
## -----------------------------------------------------------------------------
mpg %>% group_by(manufacturer) %>%
summarise(mean_cty = mean(cty)) %>%
horz_bar_chart(
label = "manufacturer",
value = "mean_cty",
sort = "ascending",
labelFontSize = 10,
valueFontSize = 10,
fill = "orange",
stroke = "crimson",
strokeWidth = 1,
valueTitle = "average cty value",
title = "Average City Miles per Gallon by manufacturer",
titleFontSize = 16
)
## -----------------------------------------------------------------------------
mpg %>% group_by(manufacturer) %>%
summarise(mean_cty = mean(cty)) %>%
horz_bar_chart(
label = "manufacturer",
value = "mean_cty",
sort = "descending",
labelFontSize = 10,
valueFontSize = 10,
bgcol = "black",
axisCol = "white",
fill = "white",
stroke = "white",
strokeWidth = 1,
valueTitle = "average cty value",
labelTitle = "Manufacturers",
title = "Average City Miles per Gallon by manufacturer",
titleFontSize = 16
)
## -----------------------------------------------------------------------------
mpg %>% group_by(drv) %>%
summarise(median_cty = median(cty)) %>%
lollipop_chart(
x = "drv",
y = "median_cty",
sort = "ascending",
xtitle = "drv variable",
ytitle = "median cty",
title = "Median cty per drv",
xFontSize = 20
)
## -----------------------------------------------------------------------------
mpg %>% filter(year == 2008) %>%
lollipop_chart(
x = "manufacturer",
y = "hwy",
circleFill = 'red',
circleStroke = 'orange',
circleRadius = 5,
sort = "none",
xFontSize = 10
)
## -----------------------------------------------------------------------------
mpg %>% group_by(manufacturer) %>%
summarise(median_cty = median(cty)) %>%
horz_lollipop(
label = "manufacturer",
value = "median_cty",
sort = "descending")
## -----------------------------------------------------------------------------
mpg %>% filter(year == 2008) %>%
horz_lollipop(
label = "manufacturer",
value = "hwy",
circleFill = 'red',
circleStroke = 'orange',
circleRadius = 5,
sort = "none"
)
## -----------------------------------------------------------------------------
# starwars is part of the dplyr data frame
mini_starwars <- starwars %>% tidyr::drop_na(mass) %>%
sample_n(size = 5) # getting 5 random values
pie_chart(
data = mini_starwars,
value = "mass",
label = "name"
)
## -----------------------------------------------------------------------------
pie_chart(
data = mini_starwars,
value = "mass",
label = "name",
padRadius = 200,
padAngle = 0.1,
cornerRadius = 50,
innerRadius = 10
)
## -----------------------------------------------------------------------------
pie_chart(
data = mini_starwars,
value = "mass",
label = "name",
innerRadius = 120,
cornerRadius = 20,
title = "5 Starwars characters ranked by their mass",
titleFontSize = 16,
bgcol = "yellow"
)
## -----------------------------------------------------------------------------
# 1. converting AirPassengers to a tidy data frame
airpassengers <- data.frame(
passengers = as.matrix(AirPassengers),
date= zoo::as.Date(time(AirPassengers))
)
# 2. plotting the line chart
line_chart(
data = airpassengers,
x = "date",
y = "passengers"
)
## -----------------------------------------------------------------------------
line_chart(
data = airpassengers,
x = "date",
y = "passengers",
curve = "curveStep"
)
## -----------------------------------------------------------------------------
line_chart(
data = airpassengers,
x = "date",
y = "passengers",
curve = "curveCardinal"
)
## -----------------------------------------------------------------------------
line_chart(
data = airpassengers,
x = "date",
y = "passengers",
curve = "curveBasis"
)
## -----------------------------------------------------------------------------
anim_line_chart(
data = airpassengers,
x = "date",
y = "passengers",
duration = 10000, # in milliseconds (10 seconds)
curve = "curveCardinal"
)
## -----------------------------------------------------------------------------
# 1. converting AirPassengers to a tidy data frame
airpassengers <- data.frame(
passengers = as.matrix(AirPassengers),
date= zoo::as.Date(time(AirPassengers))
)
# 2. plotting the area chart
area_chart(
data = airpassengers,
x = "date",
y = "passengers",
fill = "purple",
bgcol = "white"
)
## -----------------------------------------------------------------------------
airpassengers <- data.frame(
passengers_lower = as.matrix(AirPassengers),
passengers_upper = as.matrix(AirPassengers) + 40,
date= zoo::as.Date(time(AirPassengers))
)
area_band(
data = airpassengers,
x = "date",
yLower = "passengers_lower",
yUpper = "passengers_upper",
fill = "yellow",
stroke = "black"
)
## -----------------------------------------------------------------------------
data <- data.frame(
date = c(
"2000-01-01", "2000-02-01", "2000-03-01", "2000-04-01",
"2000-05-01", "2000-06-01", "2000-07-01",
"2000-08-01", "2000-09-01", "2000-10-01"
),
Trade = c(
2000,1023, 983, 2793, 1821, 1837, 1792, 1853, 791, 739
),
Manufacturing = c(
734, 694, 739, 736, 685, 621, 708, 685, 667, 693
),
Leisure = c(
1782, 1779, 1789, 658, 675, 833, 786, 675, 636, 691
),
Agriculture = c(
655, 587,623, 517, 561, 2545, 636, 584, 559, 2504
)
)
data
## -----------------------------------------------------------------------------
stacked_area_chart(
data = data,
x = "date",
legendTextSize = 14
)
## -----------------------------------------------------------------------------
stacked_area_chart(
data = data,
x = "date",
legendTextSize = 14,
curve = "curveCardinal",
colorCategory = "Accent",
bgcol = "white",
stroke = "black",
strokeWidth = 1
)
## -----------------------------------------------------------------------------
stacked_area_chart(
data = data,
x = "date",
legendTextSize = 14,
curve = "curveBasis",
colorCategory = "Set3",
bgcol = "black",
axisCol = "white",
xticks = 4,
stroke = "black"
)
## ----eval = FALSE-------------------------------------------------------------
# gapminder_subset <- gapminder::gapminder %>%
# select(country, year, pop) %>%
# filter(country %in% c("Japan", "Mexico", "Germany", "Brazil", "Philippines", "Vietnam")) %>%
# mutate(pop = pop/1e6)
#
#
# gapminder_subset %>%
# slice_sample(n = 10)
#
# #> year pop country
# #> 1 2007 91.07729 Philippines
# #> 2 1997 76.04900 Vietnam
# #> 3 1972 107.18827 Japan
# #> 4 1967 39.46391 Vietnam
# #> 5 1952 30.14432 Mexico
# #> 6 1987 142.93808 Brazil
# #> 7 1997 168.54672 Brazil
# #> 8 1962 41.12148 Mexico
# #> 9 1952 69.14595 Germany
# #> 10 1957 91.56301 Japan
## ----echo = FALSE-------------------------------------------------------------
gapminder_subset <- data.frame(
year = c(
1952L,1957L,1962L,1967L,1972L,1977L,
1982L,1987L,1992L,1997L,2002L,2007L,1952L,1957L,1962L,
1967L,1972L,1977L,1982L,1987L,1992L,1997L,2002L,2007L,
1952L,1957L,1962L,1967L,1972L,1977L,1982L,1987L,1992L,
1997L,2002L,2007L,1952L,1957L,1962L,1967L,1972L,1977L,
1982L,1987L,1992L,1997L,2002L,2007L,1952L,1957L,1962L,
1967L,1972L,1977L,1982L,1987L,1992L,1997L,2002L,2007L,
1952L,1957L,1962L,1967L,1972L,1977L,1982L,1987L,1992L,
1997L,2002L,2007L
),
pop = c(
56.60256,65.551171,76.03939,88.049823,
100.840058,114.313951,128.962939,142.938076,155.975974,
168.546719,179.914212,190.010647,69.145952,71.019069,73.739117,
76.368453,78.717088,78.160773,78.335266,77.718298,
80.597764,82.011073,82.350671,82.400996,86.459025,91.563009,
95.831757,100.825279,107.188273,113.872473,118.454974,
122.091325,124.329269,125.956499,127.065841,127.467972,30.144317,
35.015548,41.121485,47.995559,55.984294,63.759976,
71.640904,80.122492,88.11103,95.895146,102.479927,108.700891,
22.438691,26.072194,30.325264,35.3566,40.850141,46.850962,
53.456774,60.017788,67.185766,75.012988,82.995088,91.077287,
26.246839,28.998543,33.79614,39.46391,44.655014,50.533506,
56.142181,62.826491,69.940728,76.048996,80.908147,
85.262356
),
country = as.factor(c(
"Brazil","Brazil",
"Brazil","Brazil","Brazil","Brazil","Brazil",
"Brazil","Brazil","Brazil","Brazil","Brazil","Germany",
"Germany","Germany","Germany","Germany",
"Germany","Germany","Germany","Germany","Germany",
"Germany","Germany","Japan","Japan","Japan","Japan",
"Japan","Japan","Japan","Japan","Japan","Japan",
"Japan","Japan","Mexico","Mexico","Mexico",
"Mexico","Mexico","Mexico","Mexico","Mexico",
"Mexico","Mexico","Mexico","Mexico","Philippines",
"Philippines","Philippines","Philippines","Philippines",
"Philippines","Philippines","Philippines",
"Philippines","Philippines","Philippines","Philippines",
"Vietnam","Vietnam","Vietnam","Vietnam",
"Vietnam","Vietnam","Vietnam","Vietnam","Vietnam",
"Vietnam","Vietnam","Vietnam"
))
)
## -----------------------------------------------------------------------------
gapminder_subset %>%
bar_chart_race(
x = "pop",
y = "country",
time = "year",
ytitle = "Country",
xtitle = "Population (in millions)",
title = "Bar chart race of country populations"
)
## -----------------------------------------------------------------------------
gapminder_subset %>%
bar_chart_race(
x = "pop",
y = "country",
time = "year",
transitionDur = 1000,
frameDur = 0,
ytitle = "Country",
xtitle = "Population (in millions)",
title = "Bar chart race of country populations"
)
## -----------------------------------------------------------------------------
gapminder_subset %>%
bar_chart_race(
x = "pop",
y = "country",
time = "year",
ease = "BackInOut",
ytitle = "Country",
xtitle = "Population (in millions)",
title = "Bar chart race of country populations",
timeLabelOpts = list(
size = 40,
prefix = "Year: ",
xOffset = 0.2
)
)
## -----------------------------------------------------------------------------
liquid_chart(value = 0.55, title = "Memory")
## -----------------------------------------------------------------------------
liquid_chart(
value = 0.28,
label = "28%",
fillColor = "tomato",
circleColor = "tomato",
textColor = "tomato",
waveTextColor = "white",
title = "Errors"
)
## -----------------------------------------------------------------------------
liquid_chart(
value = 0.72,
label = "72%",
fillColor = "#27ae60",
waveAmplitude = 0.05,
waveCount = 3,
waveSpeed = 1.5,
title = "Battery"
)
## -----------------------------------------------------------------------------
pnl <- data.frame(
label = c("Revenue", "COGS", "Gross Profit",
"R&D", "S&M", "G&A", "Operating Income"),
value = c(1200, -450, 750, -120, -90, -60, 480),
measure = c("relative", "relative", "total",
"relative", "relative", "relative", "total")
)
waterfall_chart(
data = pnl,
x = "label",
y = "value",
measure = "measure",
title = "P&L bridge",
ytitle = "USD thousands"
)
## -----------------------------------------------------------------------------
cashflow <- data.frame(
month = c("Jan", "Feb", "Mar", "Apr", "May", "Jun"),
delta = c(120, -30, 80, -60, 95, -20)
)
waterfall_chart(
data = cashflow,
x = "month",
y = "delta",
title = "Monthly cash flow",
ytitle = "USD thousands",
positiveColor = "steelblue",
negativeColor = "tomato"
)
## -----------------------------------------------------------------------------
life_exp <- data.frame(
country = c("Brazil", "China", "Egypt", "India",
"Japan", "Mexico", "Nigeria", "Turkey"),
year_1952 = c(50.9, 44.0, 41.9, 37.4, 63.0, 50.8, 36.3, 43.6),
year_2007 = c(72.4, 72.9, 71.3, 64.7, 82.6, 76.2, 46.9, 71.8)
)
dumbbell_chart(
data = life_exp,
x1 = "year_1952",
x2 = "year_2007",
y = "country",
x1Label = "1952",
x2Label = "2007",
title = "Life expectancy: 1952 vs 2007",
xtitle = "Life expectancy (years)",
sort = "ascending"
)
## ----message=FALSE, warning=FALSE---------------------------------------------
library(dplyr)
mpg_summary <- mpg |>
group_by(class) |>
summarise(city = mean(cty), highway = mean(hwy))
dumbbell_chart(
data = mpg_summary,
x1 = "city",
x2 = "highway",
y = "class",
x1Label = "City",
x2Label = "Highway",
col1 = "steelblue",
col2 = "darkorange",
title = "City vs highway fuel economy by class",
xtitle = "Miles per gallon",
sort = "ascending"
)
## ----fig.align='center', message=FALSE, warning=FALSE-------------------------
library(ggplot2) # for the mpg dataset
# Single swarm — full distribution of highway fuel economy
beeswarm_plot(
data = mpg,
x = "hwy",
col = "steelblue",
xtitle = "Highway miles per gallon",
title = "Distribution of hwy"
)
## ----fig.align='center', message=FALSE, warning=FALSE-------------------------
beeswarm_plot(
data = mpg,
x = "hwy",
group = "class",
xtitle = "Highway miles per gallon",
title = "Highway fuel economy by vehicle class",
tooltip = "manufacturer"
)
## ----fig.align='center'-------------------------------------------------------
beeswarm_plot(
data = iris,
x = "Sepal.Length",
group = "Species",
colorPalette = "Set2",
radius = 5,
opacity = 0.8,
xtitle = "Sepal length (cm)",
title = "Sepal length by species"
)
## -----------------------------------------------------------------------------
bullet_chart(
value = 270,
target = 300,
ranges = c(150, 225, 350),
title = "Revenue",
subtitle = "USD thousands"
)
## -----------------------------------------------------------------------------
bullet_chart(
value = 7.4,
target = 8.0,
ranges = c(4, 7, 10),
title = "Satisfaction",
subtitle = "out of 10",
valueColor = "steelblue"
)
## -----------------------------------------------------------------------------
bullet_chart(
value = 320,
target = 250,
ranges = c(200, 500, 1000),
rangeColors = c("#f0f0f0", "#d9d9d9", "#bdbdbd"),
title = "Response",
subtitle = "ms"
)
## -----------------------------------------------------------------------------
gauge_chart(
value = 8,
title = "Memory"
)
## -----------------------------------------------------------------------------
gauge_chart(
value = 72,
min = 0,
max = 100,
title = "CPU Load",
warningZone = 60,
warningColor = "orange",
dangerZone = 80,
dangerColor = "red"
)
## -----------------------------------------------------------------------------
gauge_chart(
value = 530,
min = 0,
max = 1000,
title = "Response (ms)",
warningZone = 400,
warningColor = "orange",
dangerZone = 700,
dangerColor = "red"
)
## ----eval=FALSE---------------------------------------------------------------
# library(shiny)
# library(ddplot)
# library(r2d3)
#
# ui <- fluidPage(
#
# shiny::h2("Example ddplot application"),
#
# shiny::selectInput(
# inputId = "colors",
# label = NULL,
# choices = colors(),
# selected = "springgreen3"
# ),
#
# shiny::br(),
#
# shiny::sliderInput(
# inputId = "slider",
# label = NULL,
# min = 1,
# max = 10,
# value = 3
# ),
# shiny::br(),
# mainPanel(
# uiOutput("ddplot_ui")
# )
# )
#
# server <- function(input, output) {
# output$ddplot_ui <- renderUI({
# widget <- ddplot::scatter_plot(
# data = iris,
# x = "Sepal.Length",
# y = "Sepal.Width",
# size = input$slider,
# col = input$colors
# )
# htmlwidgets::saveWidget(widget, "www/temp_ddplot.html", selfcontained = TRUE)
# tags$iframe(src = "temp_ddplot.html", width = "100%", height = "400px", frameborder = 0)
# })
# }
#
# shinyApp(ui = ui, server = server)
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.