Visualization starts by choosing the series that should become the plotted values.

Program

Play the script to change the selected metric and watch the plotted-series summary update.

metric_index
chart_series.R
Replay: real traced execution (multi-file project)
metric_index <- 2
metric <- c("visits", "orders", "revenue")[metric_index]
series <- list(visits = c(12, 18, 21), orders = c(3, 5, 6), revenue = c(30, 52, 61))[[metric]]
total <- sum(series)
label <- paste(metric, total, sep = ":")
cat(label, "\n", sep = "")
metric_index <- 1
metric <- c("visits", "orders", "revenue")[metric_index]
series <- list(visits = c(12, 18, 21), orders = c(3, 5, 6), revenue = c(30, 52, 61))[[metric]]
total <- sum(series)
label <- paste(metric, total, sep = ":")
cat(label, "\n", sep = "")
metric_index <- 3
metric <- c("visits", "orders", "revenue")[metric_index]
series <- list(visits = c(12, 18, 21), orders = c(3, 5, 6), revenue = c(30, 52, 61))[[metric]]
total <- sum(series)
label <- paste(metric, total, sep = ":")
cat(label, "\n", sep = "")
  1. metric_index ← 2

    1metric_index <- 22metric <- c("visits", "orders", "revenue")[metric_index]
    values this step2metric_index
  2. metric ← orders

    1metric_index <- 22metric <- c("visits", "orders", "revenue")[metric_index]3series <- list(visits = c(12, 18, 21), orders = c(3, 5, 6), revenue = c(30, 52, 61))[[metric]]
    values this stepordersmetric2metric_index
  3. series ← 3, 5, 6

    2metric <- c("visits", "orders", "revenue")[metric_index]3series <- list(visits = c(12, 18, 21), orders = c(3, 5, 6), revenue = c(30, 52, 61))[[metric]]4total <- sum(series)
    values this step3, 5, 6seriesordersmetric
  4. total ← 14

    3series <- list(visits = c(12, 18, 21), orders = c(3, 5, 6), revenue = c(30, 52, 61))[[metric]]4total <- sum(series)5label <- paste(metric, total, sep = ":")
    values this step14total3, 5, 6series
  5. label ← orders:14

    4total <- sum(series)5label <- paste(metric, total, sep = ":")6cat(label, "\n", sep = "")
    values this steporders:14labelordersmetric14total
  6. cat(label, " ", sep = "")

    5label <- paste(metric, total, sep = ":")6cat(label, "\n", sep = "")
    outputorders:14
    values this steporders:14label
  1. metric_index ← 1

    1metric_index <- 12metric <- c("visits", "orders", "revenue")[metric_index]
    values this step1metric_index
  2. metric ← visits

    1metric_index <- 12metric <- c("visits", "orders", "revenue")[metric_index]3series <- list(visits = c(12, 18, 21), orders = c(3, 5, 6), revenue = c(30, 52, 61))[[metric]]
    values this stepvisitsmetric1metric_index
  3. series ← 12, 18, 21

    2metric <- c("visits", "orders", "revenue")[metric_index]3series <- list(visits = c(12, 18, 21), orders = c(3, 5, 6), revenue = c(30, 52, 61))[[metric]]4total <- sum(series)
    values this step12, 18, 21seriesvisitsmetric
  4. total ← 51

    3series <- list(visits = c(12, 18, 21), orders = c(3, 5, 6), revenue = c(30, 52, 61))[[metric]]4total <- sum(series)5label <- paste(metric, total, sep = ":")
    values this step51total12, 18, 21series
  5. label ← visits:51

    4total <- sum(series)5label <- paste(metric, total, sep = ":")6cat(label, "\n", sep = "")
    values this stepvisits:51labelvisitsmetric51total
  6. cat(label, " ", sep = "")

    5label <- paste(metric, total, sep = ":")6cat(label, "\n", sep = "")
    outputvisits:51
    values this stepvisits:51label
  1. metric_index ← 3

    1metric_index <- 32metric <- c("visits", "orders", "revenue")[metric_index]
    values this step3metric_index
  2. metric ← revenue

    1metric_index <- 32metric <- c("visits", "orders", "revenue")[metric_index]3series <- list(visits = c(12, 18, 21), orders = c(3, 5, 6), revenue = c(30, 52, 61))[[metric]]
    values this steprevenuemetric3metric_index
  3. series ← 30, 52, 61

    2metric <- c("visits", "orders", "revenue")[metric_index]3series <- list(visits = c(12, 18, 21), orders = c(3, 5, 6), revenue = c(30, 52, 61))[[metric]]4total <- sum(series)
    values this step30, 52, 61seriesrevenuemetric
  4. total ← 143

    3series <- list(visits = c(12, 18, 21), orders = c(3, 5, 6), revenue = c(30, 52, 61))[[metric]]4total <- sum(series)5label <- paste(metric, total, sep = ":")
    values this step143total30, 52, 61series
  5. label ← revenue:143

    4total <- sum(series)5label <- paste(metric, total, sep = ":")6cat(label, "\n", sep = "")
    values this steprevenue:143labelrevenuemetric143total
  6. cat(label, " ", sep = "")

    5label <- paste(metric, total, sep = ":")6cat(label, "\n", sep = "")
    outputrevenue:143
    values this steprevenue:143label
metric choice A selected name chooses one vector from a named list.
series The selected vector is the data a plotting call would draw.
summary label A small label confirms which series is being prepared.