```{css, echo=FALSE} body .main-container{ max-width: 100%; width: 1800px; margin-left: auto; margin-right: auto; } body { max-width:1800px; }

```r
knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>")

This vignette is mainly for testing purposes. Here we can test that generated charts look ok

library(tidycharts)
set_margins(left = 25, top = 50)
library(dplyr)
df <- data.frame(x = letters[1:20],
                 val = rnorm(20, mean = 5),
                 style = rep('actual',20))
column_chart(df, 'x', 'val') %>% SVGrenderer()
column_chart(df, 'x', 'val', interval = 'days') %>% SVGrenderer()

Line with many points

df <- data.frame(
  x = seq.Date(as.Date('2021-01-01'), as.Date('2021-07-01'), length.out = 200),
  'Company_sin' = 5 * sin(seq(
    from = 0,
    to = 2 * pi,
    length.out = 200
  )) +  rnorm(200, mean = 5, sd = 0.5),
  'Company_cos' = 5 * cos(seq(
    from = 0,
    to = 2 * pi,
    length.out = 200
  )) +  rnorm(200, mean = 5, sd = 0.5)
)
df <- head(df, n = 199)
l <- df %>% parse_time_series(., dates = 'x', series = c('Company_sin', 'Company_cos'))
line_chart_dense_custom(
  list = l,
  vector_x = c('x', 'x'),
  vector_y = c('y', 'y'),
  vector_cat = c('cat', 'cat'),
  series_labels = 'test_data',
  df_numbers = 1,
  point_cords = NULL
) %>% SVGrenderer()

the same but using lineplot wrapper

line_chart_dense(df, dates = 'x', series = c('Company_sin', 'Company_cos')) %>% SVGrenderer()

Barcharts

data <- data.frame(
  city = c(
    "Berlin",
    "Munich",
    "Cologne",
    "London",
    "Vienna",
    "Paris",
    "Zurich",
    "Rest"
  ),
  value = c(1159, 795, 377, 345, 266, 120, 74, 602),
  products = c(538, 250, -75, -301, 227, 90, 40, 269),
  services = c(621, 545, -302, -44, 39, 30, 34, 333),
  triangles = c(600, 600, -302, 600, 600, 30, 600, 600)
)
groups <- c("products")
series <- c("triangles", "products", "services")
styles <- c(rep('actual', 6), 'forecast', 'actual')

df_styles <- data.frame(
  products = c(rep('plan', 8)),
  services = c(rep('actual', 8)),
  triangles = c(rep('plan', 8))
)


df <- data.frame(
  animal = c("cat", "doggo", "rabbito"),
  hungry = c(7, 5, 9),
  relaxed = c(3, 4, 5),
  wounded = c(1, 8, 5)
)
srs <- c("hungry", "relaxed", "wounded")

df_waterfall <- data.frame(
  'category' = c(
    "Sales",
    "Other income",
    "Personnel expenses",
    "Material expenses",
    "Capital expenses",
    "Investment income"
  ),
  'values' = c(12.8, 1.4, -4.2, -8.5, -3.1, 0.6)
)
bar_chart(data, data$city, groups, groups, styles = styles) %>% SVGrenderer()
bar_chart_reference(df, df$animal, series = srs, ref_val = 3, series_labels = srs) %>% SVGrenderer()
bar_chart_reference(
      data,
      cat = data$city,
      groups,
      ref_val = 602,
      series_labels = groups
    ) %>% SVGrenderer()

groups2 <- c(groups, 'services')

bar_chart_normalized(data, data$city, groups2, groups2) %>% SVGrenderer()
bar_chart_grouped(data, 
                  data$city, series[2], series[3], series[1], series, styles = df_styles) %>% SVGrenderer()
bar_chart_absolute_variance(data = data, cat = 'city', baseline = data$products, real = data$services, y_title = 'profit') %>% SVGrenderer()
bar_chart_relative_variance(cat = data$city, baseline = data$products, real = data$services, y_title = 'profit') %>% SVGrenderer()
bar_chart_waterfall(
      df_waterfall$category,
      df_waterfall$values,
      add_result = TRUE,
      result_title = "Profit before tax"
    ) %>% SVGrenderer()

Column charts

df <-
  iris %>% group_by(Species) %>% summarise(avg = mean(-1 * Sepal.Length))

df2 <-
  iris %>% group_by(Species) %>% summarise(
    avg = mean(Sepal.Length),
    std = sqrt(var(Sepal.Length)),
    median = median(Sepal.Length)
  )

df3 <- data.frame('sales' = c(1.5, 2.5, 1, -0.5, 5, 4),
                  'month' = c('a','b','c','d','e', 'F'))

df4 <- data.frame(
  'month' = c('a','b','c','d','e', 'F', 'G'),
  's1' = c(1.5, 1.5, 1.6, 1.7, 1.3, 1.2, 1),
  's2' = c(1.9, 1.8, 1  , 1.3, 1.7, 1.5, 2),
  's3' = c(0.9, 1.8, 1  , 1.3, 1.7, 1.5, 2))

styles <- data.frame(
  's1' = c(rep('actual',6), 'forecast'),
  's2' = rep('plan',7),
  's3' = rep('previous',7)
)
column_chart(df, x = df$Species, series = c("avg"), styles = c('actual', 'actual', 'forecast')) %>% SVGrenderer()
column_chart(df, x = df$Species, series = c("avg")) %>%
    add_title(line1 = 'Iris', line2_measure = "Typical measure", line2_rest = "in cm", line3 = "2020..2021") %>% SVGrenderer()

column_chart(
  df2,
  x = df2$Species,
  series = c("avg", "std", "median")
) %>% SVGrenderer()

df$avg <- df$avg * -1

column_chart_normalized(
  df2,
  x = df2$Species,
  series = c("avg", "std", "median")
) %>% SVGrenderer()


column_chart_reference(
    df,
    x = df$Species,
    series = c("avg"),
    ref_value = 5.01
  ) %>% SVGrenderer()


column_chart_waterfall(df, x = df$Species, series = c("avg")) %>% SVGrenderer()

column_chart_waterfall(
    df,
    x = df$Species,
    series = c("avg"),
    styles = c('previous', 'actual', 'actual')
  ) %>% SVGrenderer()

column_chart_absolute_variance(df4$month, df4$s1, df4$s2, colors = 1, x_title = 'PL', x_style = 'plan') %>% SVGrenderer()

column_chart_grouped(
      df4$month,
      foreground = df4$s1,
      background = df4$s2,
      markers = df4$s3,
      series_labels = c("Actual", "Looooooooong series name", "Previous year"),
      styles = styles
    ) %>% SVGrenderer()

column_chart_relative_variance(
      df4$month,
      df4$s1,
      df4$s2,
      colors = 1,
      x_title = "Serie",
      x_style = 'plan',
      styles = styles$s1
    ) %>% SVGrenderer()


column_chart_waterfall_variance(
      df4$month,
      df4$s1,
      df4$s2,
      colors = 1,
      result_title = "Total"
    ) %>% SVGrenderer()

Linecharts

data <- data.frame(
  cat = c("blop", "mlem", "kwak", "beep", "moo"),
  val1 = c(1, 3, 5, 7, 7),
  val2 = c(3, 3, -3. - 5, -4, 3),
  val3 = c(8, 8.5, -8, -9, 9.2)
)
groups <- c("val1", "val2", "val3")

line_chart_markers_reference(data, data$cat, groups, c("jeden", "dwa", "trzy"), 7) %>% SVGrenderer()
line_chart_markers(data, data$cat, groups, c("jeden", "dwa", "trzy")) %>% SVGrenderer()


data <- data.frame(
  x = c(5, 25, 45, 65, 85, 30, 60, 90, 30, 60, 90, 30, 60, 90),
  y = c(3, 4, 3, 5, 2, 6, 7, 6, 5, 6, 5, 7, 7, 6),
  cat = c(
    "Jan",
    "Jan",
    "Jan",
    "Jan",
    "Jan",
    "Feb",
    "Feb",
    "Feb",
    "Mar",
    "Mar",
    "Mar",
    "Apr",
    "Apr",
    "Apr"
  )
)

df <- data.frame(
  xdf = c(5, 25, 45, 65, 5, 25, 45, 65, 30, 60, 90, 30, 60, 90),
  ydf = c(7, 8, 4, 6, 4, 5, 2, -1, -3, -4, 4 , 5, 2, 2),
  cat = c(
    "Jan",
    "Jan",
    "Jan",
    "Jan",
    "Feb",
    "Feb",
    "Feb",
    "Feb",
    "Mar",
    "Mar",
    "Mar",
    "Apr",
    "Apr",
    "Apr"
  )
)

mlem <- data.frame(
  df_num = c(2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2),
  point_cords = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
)

lista <- list(data, df)
xes <- c("x", "xdf")
yes <- c("y", "ydf")
cats <- c("cat", "cat")

line_chart_dense_custom(lista,
                              xes,
                              yes,
                              cats,
                              c("kwak", "moo"),
                              mlem$df_num,
                              mlem$point_cords) %>% SVGrenderer()



df <- data.frame(
  animal = c("cat", "doggo", "rabbito"),
  hungry = c(7, 5, 9),
  relaxed = c(3, 4, 5),
  wounded = c(1, 8, 5)
)
srs <- c("hungry", "relaxed", "wounded")
line_chart_markers(df, df$animal, srs, srs) %>% SVGrenderer()

data <- data.frame(
  cat = c("blop", "mlem", "kwak", "beep", "moo"),
  val1 = c(8, 8.5, 8, 9, 9.2),
  val2 = c(5, 6, 5, 7, 7),
  val3 = c(3, 3, 3.5, 4, 3)

)
groups <- c("val1", "val2", "val3")
series_labels <- c("speed", "mlemler", "defence")

line_chart_normalized(data, data$cat, groups, series_labels, c(NA, 1, 1, 1, NA)) %>% SVGrenderer()

data <- data.frame(
  city = c(
    "Berlin",
    "Munich",
    "Cologne",
    "London",
    "Vienna",
    "Paris",
    "Zurich",
    "Rest"
  ),
  value = c(1159, 795, 377, 345, 266, 120, 74, 602),
  products = c(538, 250, 75, 301, 227, 90, 40, 269),
  services = c(621, 545, 302, 44, 39, 30, 34, 333)
)
groups <- c("products", "services")
series_labels <- groups
line_chart_stacked(data, data$city, groups, series_labels, T) %>% SVGrenderer()

data <- data.frame(
  cat = c("blop", "mlem", "kwak", "beep", "moo"),
  val1 = c(8, 8.5, 8, 9, 9.2),
  val2 = c(5, 6, 5, 7, 7),
  val3 = c(3, 3, 3.5, 4, 3)

)
groups <- c("val1", "val2", "val3")
labels <- groups
line_chart_stacked(data, data$cat, groups, labels, c(NA, 1, 1, NA, NA)) %>% SVGrenderer()

data <- data.frame(
  city = c(
    "Berlin",
    "Munich",
    "Cologne",
    "London",
    "Vienna",
    "Paris",
    "Zurich",
    "Rest"
  ),
  value = c(1159, 795, 377, 345, 266, 120, 74, 602),
  products = c(538, 250, 75, 301, 227, 90, 40, 269),
  services = c(621, 545, 302, 44, 39, 30, 34, 333)
)
groups <- c("products", "services")


df <- data.frame(
  ser_name = c(
    "products",
    "products",
    "products",
    "products",
    "products",
    "products",
    "products",
    "products"
  ),
  point_coordinates = c(1, 2, 3, 4, 5, 6, 7, 8)
)
series_labels <- groups
line_chart(data,
                      data$city,
                      groups,
                      series_labels,
                      df$ser_name,
                      df$point_coordinates) %>% SVGrenderer()


df <- data.frame(
  x = seq.Date(as.Date('2021-01-01'), as.Date('2022-01-01'), length.out = 200),
  y = 5 * sin(seq(
    from = 0,
    to = 2 * pi,
    length.out = 200
  )) +  rnorm(200, mean = 5, sd = 0.5)
)
df <- df[df$x < as.Date('2021-02-28'), ]


dates = seq.Date(as.Date('2021-07-01'), as.Date('2021-08-31'), by = 1)
df <- data.frame(
  dates = dates,
  y = seq(8, 8, along.with = dates) + rnorm(length(dates), sd = 0.5),
  z = seq(6, 6, along.with = dates) + rcauchy(length(dates), scale = 0.5)
)
line_chart_dense(df,
                              dates = 'dates',
                              series = c('y', 'z'),
                              interval = 'weeks') %>%
  SVGrenderer()

Joint plots

df <- data.frame(x = letters[1:20],
                 val = rnorm(20, mean = 5),
                 style = rep('actual',20))

join_charts(column_chart(df, 'x', 'val'),
           column_chart(df, 'x', 'val')) %>% SVGrenderer()

df2 <- data.frame(x = month.abb[1:6],
                  y = rnorm(6, mean = 3),
                  z = rnorm(6, mean = 4))

join_charts(
  column_chart(df2, x = 'x', series = 'y'),
  column_chart(df2, x = 'x', series = 'z'),
  column_chart(df2, x = 'x', series = c('y', 'z')),
  nrows = 2,
  ncols = 2
) %>% SVGrenderer()
library(palmerpenguins)
library(tidyverse)
p <- penguins %>%
  drop_na(bill_length_mm, flipper_length_mm, bill_length_mm, body_mass_g)
#--- bill length on the x-axis ---
scatter1 <- scatter_plot(p, p$bill_length_mm, p$bill_depth_mm, p$species, 10, 5, c("bill length", "in mm"), c("bill depht", "in mm"), "Legend") %>%
  add_title("Relationship between bill length and bill depth","","")
scatter2 <- scatter_plot(p, p$bill_length_mm, p$flipper_length_mm, p$species, 10, 50, c("bill length", "in mm"), c("flipper length", "in mm"), "Legend") %>%
  add_title("Relationship between bill length and flipper length","","")
scatter3 <- scatter_plot(p, p$bill_length_mm, p$body_mass_g, p$species, 10, 1000, c("bill length", "in mm"), c("body mass", "in g"), "Legend") %>%
  add_title("Relationship between bill length and body mass","","")
#--- bill depht on the x -axis ---
scatter4 <- scatter_plot(p, p$bill_depth_mm, p$bill_length_mm, x_space_size = 5, y_space_size = 10, x_names = c("bill depht", "in mm"), y_names = c("bill length", "in mm"), legend_title = "Legend") %>%
  add_title("Relationship between bill depth and bill length","","")
scatter5 <- scatter_plot(p, p$bill_depth_mm, p$flipper_length_mm, p$species, 5, 50, c("bill depht", "in mm"), c("flipper length", "in mm"), "Legend") %>% add_title("Relationship between bill depth and flipper length","","")
scatter6 <- scatter_plot(p, p$bill_depth_mm, p$body_mass_g, p$species, 5, 1000, c("bill depht", "in mm"), c("body mass", "in g"), "Legend") %>% add_title("Relationship between bill length and body mass","","")


join_charts(scatter1, scatter2, scatter3,
           scatter4, scatter5,
           nrows=2, ncols=3) %>% SVGrenderer()


SawickiBartosz/tidycharts documentation built on Jan. 20, 2022, 8:25 p.m.