Create beautiful and interactive visualizations in a single function call. The 'data.table' package is utilized to perform the data wrangling necessary to prepare your data for the plot types you wish to build, along with allowing fast processing for big data. There are two broad classes of plots available: standard plots and machine learning evaluation plots. There are lots of parameters available in each plot type function for customizing the plots (such as faceting) and data wrangling (such as variable transformations and aggregation).
AutoPlots is a comprehensive R visualization toolkit built on top of echarts4r, providing a consistent, ultra-customizable API across dozens of chart types — from classical analytics plots to advanced modeling visualizations and 3D charts.
AutoPlots exposes the full power of ECharts.js without requiring users to write JavaScript. If a feature exists in ECharts, AutoPlots aims to make it available.
30+ high-quality plot types — all with consistent argument naming
Full access to ECharts options using the xxx.* naming convention
No JavaScript required
Shiny-ready out of the box
Supports multi-plot layouts via display_plots_grid()
3D visualizations, modeling plots, river charts, radar, parallel, contour, density, and more
Designed for data science, EDA, dashboards, and model evaluation
AutoPlots is built around these principles:
Every plot is a standalone object Modify, tweak, and filter each one independently.
Composition happens outside the plot Use display_plots_grid() to arrange multiple plots into dashboards.
Expose full ECharts power without JS Legend, toolbox, tooltip, axis, series, grid, animation, theme — everything is adjustable.
Beautiful defaults, infinite customization Beginners get great plots immediately; experts can tune everything.
# Install CRAN dependencies
install.packages(c(
"combinat", "data.table", "devtools", "dplyr", "e1071", "echarts4r",
"lubridate", "nortest", "quanteda", "quanteda.textstats", "scales"
))
# Install AutoPlots from GitHub
devtools::install_github("AdrianAntico/AutoPlots", upgrade = FALSE, force = TRUE)
library(AutoPlots)
dt <- data.table::data.table(x = rnorm(1000))
AutoPlots::Density(
dt,
XVar = "x",
legend.show = FALSE
)
Below are the full set of examples (kept from your original README), organized using collapsible sections for easier navigation.
# Create fake data
data <- AutoPlots::FakeDataGenerator(N = 1000)
data <- data[, .(
IndepVar = mean(Independent_Variable8)
), by = c("DateTime")]
# Build plot
AutoPlots::Area(
dt = data,
XVar = "DateTime",
YVar = "IndepVar",
areaStyle.color = c("#80AAFF","#BDD5FF","#CFCFCF"),
areaStyle.opacity = c(0.9,0.4,0.05),
legend.show = FALSE)
# Create fake data
data <- AutoPlots::FakeDataGenerator(N = 1000)
data <- data[, .(
IndepVar = mean(Independent_Variable8)
), by = c("DateTime", "Factor_1")]
# Build plot
ch <- as.character(sort(unique(data$Factor_1)))
plot_list <- lapply(ch, function(x) {
AutoPlots::Area(
dt = data[Factor_1 == x],
XVar = "DateTime",
YVar = "IndepVar",
Height = "300px",
title.text = paste0("Factor_1: ", x),
areaStyle.color = c("#80AAFF","#BDD5FF","#CFCFCF"),
areaStyle.opacity = c(0.9,0.4,0.05),
legend.show = FALSE)
})
AutoPlots::display_plots_grid(
plot_list,
cols = 2
)
# Create fake data
data <- AutoPlots::FakeDataGenerator(N = 1000)
data <- data[, .(
IndepVar = mean(Independent_Variable8)
), by = c("DateTime")]
# Build plot
AutoPlots::Bar(
dt = data,
XVar = "DateTime",
YVar = "IndepVar",
backgroundStyle.color = c("#80AAFF","#BDD5FF","#CFCFCF"),
backgroundStyle.opacity = c(0.9,0.4,0.05),
legend.show = FALSE)
# Create fake data
data <- AutoPlots::FakeDataGenerator(N = 1000)
data <- data[, .(
IndepVar = mean(Independent_Variable8)
), by = c("DateTime", "Factor_1")]
# Build plot
ch <- as.character(sort(unique(data$Factor_1)))
plot_list <- lapply(ch, function(x) {
AutoPlots::Bar(
dt = data[Factor_1 == x],
XVar = "DateTime",
YVar = "IndepVar",
Height = "300px",
title.text = paste0("Factor_1: ", x),
backgroundStyle.color = c("#80AAFF","#BDD5FF","#CFCFCF"),
backgroundStyle.opacity = c(0.9,0.4,0.05),
legend.show = FALSE)
})
AutoPlots::display_plots_grid(
plot_list,
cols = 2
)
# Create fake data
data <- AutoPlots::FakeDataGenerator(N = 1000)
data[1, Independent_Variable8 := 0.6]
data[2, Independent_Variable8 := 0.7]
data[3, Independent_Variable8 := 0.8]
data[4, Independent_Variable8 := 0.9]
# Build plot
AutoPlots::Box(
dt = data,
XVar = "Factor_1",
YVar = "Independent_Variable8",
yAxis.title = "IndepVar",
itemStyle.color = c("red","#BDD5FF","blue"),
itemStyle.opacity = c(0.9,0.4,0.05),
legend.show = FALSE)
# Create fake data
data <- AutoPlots::FakeDataGenerator(N = 1000)
data[1, Independent_Variable8 := 0.6]
data[2, Independent_Variable8 := 0.7]
data[3, Independent_Variable8 := 0.8]
data[4, Independent_Variable8 := 0.9]
# Build plot
ch <- c("Factor_1", "Factor_2")
plot_list <- lapply(ch, function(x) {
AutoPlots::Box(
dt = data,
XVar = x,
YVar = "Independent_Variable8",
Height = "300px",
title.text = paste0("Factor_1: ", x),
itemStyle.color = c("red","#BDD5FF","blue"),
itemStyle.opacity = c(0.9,0.4,0.05),
legend.show = FALSE)
})
AutoPlots::display_plots_grid(
plot_list,
cols = 1
)
# Create correlated data
n <- 1000 # rows
p <- 4 # number of variables
rho <- 0.8 # correlation between neighbors (AR(1))
mu <- c(50, 100, 0, 10) # means (length p)
sds <- c(10, 5, 3, 1) # standard deviations (length p)
Sigma_cor <- outer(1:p, 1:p, \(i, j) rho^abs(i - j)) # AR(1) correlation matrix
L <- chol(Sigma_cor) # Cholesky factor (upper-tri)
Z <- matrix(rnorm(n * p), nrow = n, ncol = p) # iid N(0,1)
X_cor <- Z %*% L # correlated, unit variance
X <- X_cor %*% diag(sds) # set std devs
X <- sweep(X, 2, mu, `+`) # set means
dt <- data.table::as.data.table(X)
data.table::setnames(dt, paste0("x", seq_len(p)))
# Build plot
p1 <- AutoPlots::Copula(
dt = dt,
XVar = "x1",
YVar = "x2",
legend.show = FALSE
)
# Create correlated data
n <- 1000 # rows
p <- 4 # number of variables
rho <- 0.8 # correlation between neighbors (AR(1))
mu <- c(50, 100, 0, 10) # means (length p)
sds <- c(10, 5, 3, 1) # standard deviations (length p)
Sigma_cor <- outer(1:p, 1:p, \(i, j) rho^abs(i - j)) # AR(1) correlation matrix
L <- chol(Sigma_cor) # Cholesky factor (upper-tri)
Z <- matrix(rnorm(n * p), nrow = n, ncol = p) # iid N(0,1)
X_cor <- Z %*% L # correlated, unit variance
X <- X_cor %*% diag(sds) # set std devs
X <- sweep(X, 2, mu, `+`) # set means
dt <- data.table::as.data.table(X)
data.table::setnames(dt, paste0("x", seq_len(p)))
# Build plot
p1 <- AutoPlots::Copula(
dt = dt,
XVar = "x1",
YVar = "x2",
title.text = "x1 vs. x2",
legend.show = FALSE
)
# Build plot
p2 <- AutoPlots::Copula(
dt = dt,
XVar = "x1",
YVar = "x3",
title.text = "x1 vs. x3",
legend.show = FALSE
)
# Build plot
p3 <- AutoPlots::Copula(
dt = dt,
XVar = "x2",
YVar = "x3",
title.text = "x2 vs. x3",
legend.show = FALSE
)
# Build plot
p4 <- AutoPlots::Copula(
dt = dt,
XVar = "x3",
YVar = "x4",
title.text = "x3 vs. x4",
legend.show = FALSE
)
AutoPlots::display_plots_grid(
list(p1,p2,p3,p4),
cols = 2
)
n <- 1000 # rows
p <- 4 # number of variables
rho <- 0.8 # correlation between neighbors (AR(1))
mu <- c(50, 100, 0, 10) # means (length p)
sds <- c(10, 5, 3, 1) # standard deviations (length p)
Sigma_cor <- outer(1:p, 1:p, \(i, j) rho^abs(i - j)) # AR(1) correlation matrix
L <- chol(Sigma_cor) # Cholesky factor (upper-tri)
Z <- matrix(rnorm(n * p), nrow = n, ncol = p) # iid N(0,1)
X_cor <- Z %*% L # correlated, unit variance
X <- X_cor %*% diag(sds) # set std devs
X <- sweep(X, 2, mu, `+`) # set means
dt <- data.table::as.data.table(X)
data.table::setnames(dt, paste0("x", seq_len(p)))
# Build Plot
AutoPlots::CorrMatrix(
dt = dt,
PreAgg = FALSE,
Method = "Spearman",
CorrVars = c("x1","x2","x3","x4"),
ShowLabels = TRUE,
visualMap.InRange.color = c("white", "gray", "darkblue")
)
n <- 1000 # rows
p <- 4 # number of variables
rho <- 0.8 # correlation between neighbors (AR(1))
mu <- c(50, 100, 0, 10) # means (length p)
sds <- c(10, 5, 3, 1) # standard deviations (length p)
Sigma_cor <- outer(1:p, 1:p, \(i, j) rho^abs(i - j)) # AR(1) correlation matrix
L <- chol(Sigma_cor) # Cholesky factor (upper-tri)
Z <- matrix(rnorm(n * p), nrow = n, ncol = p) # iid N(0,1)
X_cor <- Z %*% L # correlated, unit variance
X <- X_cor %*% diag(sds) # set std devs
X <- sweep(X, 2, mu, `+`) # set means
dt <- data.table::as.data.table(X)
data.table::setnames(dt, paste0("x", seq_len(p)))
# Build Plot
p1 <- AutoPlots::CorrMatrix(
dt = dt,
PreAgg = FALSE,
Method = "Spearman",
CorrVars = c("x1","x2","x3","x4"),
ShowLabels = TRUE,
visualMap.InRange.color = c("white", "gray", "darkblue"),
title.text = "Spearman Correlation"
)
p2 <- AutoPlots::CorrMatrix(
dt = dt,
PreAgg = FALSE,
Method = "Pearson",
CorrVars = c("x1","x2","x3","x4"),
ShowLabels = TRUE,
visualMap.InRange.color = c("white", "gray", "darkgreen"),
title.text = "Pearson Correlation"
)
p3 <- AutoPlots::CorrMatrix(
dt = dt,
PreAgg = FALSE,
Method = "Kendall",
CorrVars = c("x1","x2","x3","x4"),
ShowLabels = TRUE,
visualMap.InRange.color = c("white", "gray", "darkred"),
title.text = "Kendall's Tau Correlation"
)
AutoPlots::display_plots_grid(
list(p1,p2,p3),
cols = 2
)
# Create fake data
data <- data.table::data.table(IndepVar = rnorm(1000, mean = 0, sd = 1))
# Build plot
AutoPlots::Density(
dt = data,
XVar = "IndepVar",
areaStyle.color = c("#697AFF","#A1ADFF","#D9DEFF"),
areaStyle.opacity = c(0.9,0.4,0.05),
legend.show = FALSE
)
# Create fake data
data <- data.table::data.table(IndepVar = rnorm(1000, mean = 5, sd = 2))
data[, IndepVar2 := rnorm(1000, mean = 10, sd = 5)]
data[, IndepVar3 := rnorm(1000, mean = 10, sd = 15)]
data[, IndepVar4 := rnorm(1000, mean = 10, sd = 20)]
# Build Plots
p1 <- AutoPlots::Density(
dt = data,
XVar = "IndepVar",
title.text = "IndepVar",
areaStyle.color = c("#697AFF","#A1ADFF","#D9DEFF"),
areaStyle.opacity = c(0.9,0.4,0.05),
legend.show = FALSE
)
p2 <- AutoPlots::Density(
dt = data,
XVar = "IndepVar2",
title.text = "IndepVar2",
areaStyle.color = c("#697AFF","#A1ADFF","#D9DEFF"),
areaStyle.opacity = c(0.9,0.4,0.05),
legend.show = FALSE
)
p3 <- AutoPlots::Density(
dt = data,
XVar = "IndepVar3",
title.text = "IndepVar3",
areaStyle.color = c("#697AFF","#A1ADFF","#D9DEFF"),
areaStyle.opacity = c(0.9,0.4,0.05),
legend.show = FALSE
)
p4 <- AutoPlots::Density(
dt = data,
XVar = "IndepVar4",
title.text = "IndepVar4",
areaStyle.color = c("#697AFF","#A1ADFF","#D9DEFF"),
areaStyle.opacity = c(0.9,0.4,0.05),
legend.show = FALSE
)
AutoPlots::display_plots_grid(
list(p1,p2,p3,p4),
cols = 2
)
# Create fake data
data <- AutoPlots::FakeDataGenerator(N = 1000)
data <- data[, .(
IndepVar = round(mean(Independent_Variable8), 3)
), by = c("Factor_1")]
# Build Plot
AutoPlots::Donut(
dt = data,
XVar = "Factor_1",
YVar = "IndepVar"
)
# Create fake data
data <- AutoPlots::FakeDataGenerator(N = 1000)
dt1 <- data[, .(
IndepVar = round(mean(Independent_Variable8), 3)
), by = c("Factor_1")]
dt2 <- data[, .(
IndepVar = round(mean(Independent_Variable8), 3)
), by = c("Factor_2")]
# Build Plots
p1 <- AutoPlots::Donut(
dt = dt1,
XVar = "Factor_1",
YVar = "IndepVar",
title.text = "Factor_1"
)
p2 <- AutoPlots::Donut(
dt = dt2,
XVar = "Factor_2",
YVar = "IndepVar",
title.text = "Factor_2"
)
AutoPlots::display_plots_grid(
list(p1, p2),
cols = 1
)
# Create fake data
data <- AutoPlots::FakeDataGenerator(N = 100000, Correlation = 0.1)
data <- data[, .(
IndepVar = round(mean(Independent_Variable8), 3)
), by = c("Factor_1", "Factor_2")]
# Build Plots
AutoPlots::HeatMap(
dt = data,
XVar = "Factor_1",
YVar = "Factor_2",
ZVar = "IndepVar",
title.text = "V1",
label.show = TRUE,
label.fontWeight = "bolder",
emphasis.shadowColor = "white",
emphasis.shadowBlur = 10,
visualMap.InRange.color = c("blue", "white", "red")
)
# Create fake data
data <- AutoPlots::FakeDataGenerator(N = 100000, Correlation = 0.1)
data <- data[, .(
IndepVar = round(mean(Independent_Variable8), 3)
), by = c("Factor_1", "Factor_2")]
# Build Plots
p1 <- AutoPlots::HeatMap(
dt = data,
XVar = "Factor_1",
YVar = "Factor_2",
ZVar = "IndepVar",
title.text = "V1",
label.show = TRUE,
label.fontWeight = "bolder",
emphasis.shadowColor = "white",
emphasis.shadowBlur = 10,
visualMap.InRange.color = c("blue", "white", "red")
)
# Create fake data
data <- AutoPlots::FakeDataGenerator(N = 100000, Correlation = 0.1)
data <- data[, .(
IndepVar = round(mean(Independent_Variable8), 3)
), by = c("Factor_1", "Factor_2")]
# Build Plots
p2 <- AutoPlots::HeatMap(
dt = data,
XVar = "Factor_1",
YVar = "Factor_2",
ZVar = "IndepVar",
title.text = "V2",
label.show = TRUE,
label.fontWeight = "bolder",
emphasis.shadowColor = "white",
emphasis.shadowBlur = 10,
visualMap.InRange.color = c("green", "white", "orange")
)
AutoPlots::display_plots_grid(
list(p1, p2),
cols = 1
)
# Create fake data
data <- data.table::data.table(Variable = rnorm(n = 1000, mean = 5, sd = 2))
# Build Plots
AutoPlots::Histogram(
dt = data,
XVar = "Variable",
backgroundStyle.color = c("lightblue","darkblue","blue","blue"),
backgroundStyle.opacity = c(0.9,0.7,0.6,0.05),
legend.show = FALSE
)
# Create fake data
data <- data.table::data.table(Variable = rnorm(n = 1000, mean = 5, sd = 2))
data[, Variable2 := rnorm(n = 1000, mean = 5, sd = 5)]
data[, Variable3 := rnorm(n = 1000, mean = 5, sd = 10)]
data[, Variable4 := rnorm(n = 1000, mean = 5, sd = 20)]
# Build Plots
p1 <- AutoPlots::Histogram(
dt = data,
XVar = "Variable",
title.text = "Var",
backgroundStyle.color = c("lightblue","darkblue","blue","blue"),
backgroundStyle.opacity = c(0.9,0.7,0.6,0.05),
legend.show = FALSE
)
p2 <- AutoPlots::Histogram(
dt = data,
XVar = "Variable2",
title.text = "Var2",
backgroundStyle.color = c("lightblue","darkblue","blue","blue"),
backgroundStyle.opacity = c(0.9,0.7,0.6,0.05),
legend.show = FALSE
)
p3 <- AutoPlots::Histogram(
dt = data,
XVar = "Variable3",
title.text = "Var3",
backgroundStyle.color = c("lightblue","darkblue","blue","blue"),
backgroundStyle.opacity = c(0.9,0.7,0.6,0.05),
legend.show = FALSE
)
p4 <- AutoPlots::Histogram(
dt = data,
XVar = "Variable4",
title.text = "Var4",
backgroundStyle.color = c("lightblue","darkblue","blue","blue"),
backgroundStyle.opacity = c(0.9,0.7,0.6,0.05),
legend.show = FALSE
)
AutoPlots::display_plots_grid(
list(p1,p2,p3,p4),
cols = 2
)
# Create data
data <- AutoPlots::FakeDataGenerator(N = 1000, AddDate = T)
data <- data[, .(
IndepVar = mean(Independent_Variable8)
), by = c("DateTime")]
# Build plot
AutoPlots::Line(
dt = data,
XVar = "DateTime",
YVar = "IndepVar",
title.text = "IndepVar",
lineStyle.color = c("red","#3848FF","blue"),
legend.show = FALSE
)
# Create data
data <- AutoPlots::FakeDataGenerator(N = 1000, AddDate = T)
data <- data[, .(
IndepVar = mean(Independent_Variable8),
IndepVar2 = mean(Independent_Variable7),
IndepVar3 = mean(Independent_Variable6),
IndepVar4 = mean(Independent_Variable5)
), by = c("DateTime")]
# Build plot
p1 <- AutoPlots::Line(
dt = data,
XVar = "DateTime",
YVar = "IndepVar",
title.text = "IndepVar",
lineStyle.color = c("red","#3848FF","blue"),
legend.show = FALSE
)
p2 <- AutoPlots::Line(
dt = data,
XVar = "DateTime",
YVar = "IndepVar2",
title.text = "IndepVar2",
lineStyle.color = c("red","#3848FF","blue"),
legend.show = FALSE
)
p3 <- AutoPlots::Line(
dt = data,
XVar = "DateTime",
YVar = "IndepVar3",
title.text = "IndepVar3",
lineStyle.color = c("red","#3848FF","blue"),
legend.show = FALSE
)
p4 <- AutoPlots::Line(
dt = data,
XVar = "DateTime",
YVar = "IndepVar4",
title.text = "IndepVar4",
lineStyle.color = c("red","#3848FF","blue"),
legend.show = FALSE
)
AutoPlots::display_plots_grid(
list(p1,p2,p3,p4),
cols = 2
)
# Create data
n <- 1000 # rows
p <- 8 # number of variables
rho <- 0.8 # correlation between neighbors (AR(1))
mu <- c(50, 100, 0, 10,1,2,3,4) # means (length p)
sds <- c(10, 5, 3, 1, 1,2,3,4) # standard deviations (length p)
Sigma_cor <- outer(1:p, 1:p, \(i, j) rho^abs(i - j)) # AR(1) correlation matrix
L <- chol(Sigma_cor) # Cholesky factor (upper-tri)
Z <- matrix(rnorm(n * p), nrow = n, ncol = p) # iid N(0,1)
X_cor <- Z %*% L # correlated, unit variance
X <- X_cor %*% diag(sds) # set std devs
X <- sweep(X, 2, mu, `+`) # set means
dt <- data.table::as.data.table(X)
data.table::setnames(dt, paste0("x", seq_len(p)))
data.table::setnames(dt, "x1", "bl bl bl")
# Build Plot
AutoPlots::Parallel(
dt = dt,
CorrVars = names(dt),
ShowLabels = T,
lineStyle.color = "#00C7FF",
lineStyle.width = 0.2
)
# Create data
data <- AutoPlots::FakeDataGenerator(N = 1000, ID = 0)
data.table::setnames(
data,
paste0("Independent_Variable", 1:8),
paste0("x", 1:8)
)
# Build Plots
group_vars <- sort(as.character(unique(data$Factor_1)))[1:4]
plot_list <- lapply(group_vars, function(x) {
AutoPlots::Parallel(
dt = data[Factor_1 == x],
CorrVars = paste0("x", 1:8),
ShowLabels = T,
lineStyle.color = "#00C7FF",
lineStyle.width = 0.2,
title.text = x
)
})
AutoPlots::display_plots_grid(
plot_list,
cols = 2
)
# Create fake data
data <- AutoPlots::FakeDataGenerator(N = 1000)
data <- data[, .(
IndepVar = round(mean(Independent_Variable8), 3)
), by = c("Factor_1")]
# Build Plot
AutoPlots::Pie(
dt = data,
XVar = "Factor_1",
YVar = "IndepVar",
ShowLabels = T)
# Create fake data
data <- AutoPlots::FakeDataGenerator(N = 1000)
dt1 <- data[, .(
IndepVar = round(mean(Independent_Variable8), 3)
), by = c("Factor_1")]
dt2 <- data[, .(
IndepVar = round(mean(Independent_Variable8), 3)
), by = c("Factor_2")]
# Build Plots
p1 <- AutoPlots::Pie(
dt = dt1,
XVar = "Factor_1",
YVar = "IndepVar",
title.text = "Factor_1",
ShowLabels = T)
p2 <- AutoPlots::Pie(
dt = dt2,
XVar = "Factor_2",
YVar = "IndepVar",
title.text = "Factor_2",
ShowLabels = T)
AutoPlots::display_plots_grid(
list(p1, p2),
cols = 1
)
# Create Data
dt <- data.table::data.table(
Y1 = pnorm(q = runif(10)),
Y2 = pnorm(q = runif(10)),
Y3 = pnorm(q = runif(10)),
GV = sample(LETTERS[1:10], 10, TRUE))
# Create plot
AutoPlots::Radar(
dt = dt,
AggMethod = "mean",
ShowLabels = TRUE,
PreAgg = FALSE,
YVar = c("Y1","Y2","Y3"),
GroupVar = "GV",
lineStyle.color = c("#00BFFF", "#FF69B4", "#32CD32"))
# Create Data
dt <- data.table::data.table(
Y1 = pnorm(q = runif(10)),
Y2 = pnorm(q = runif(10)),
Y3 = pnorm(q = runif(10)),
GV = sample(LETTERS[1:10], 10, TRUE))
dt2 <- data.table::data.table(
Y1 = pnorm(q = runif(10)),
Y2 = pnorm(q = runif(10)),
Y3 = pnorm(q = runif(10)),
GV = sample(LETTERS[11:20], 10, TRUE))
# Create plot
p1 <- AutoPlots::Radar(
dt = dt,
AggMethod = "mean",
ShowLabels = TRUE,
PreAgg = FALSE,
YVar = c("Y1","Y2","Y3"),
GroupVar = "GV",
title.text = "Data 1",
lineStyle.color = c("#00BFFF", "#FF69B4", "#32CD32"))
p2 <- AutoPlots::Radar(
dt = dt2,
AggMethod = "mean",
ShowLabels = TRUE,
PreAgg = FALSE,
YVar = c("Y1","Y2","Y3"),
GroupVar = "GV",
title.text = "Data 2",
lineStyle.color = c("#00BFFF", "#FF69B4", "#32CD32"))
AutoPlots::display_plots_grid(
list(p1,p2),
cols = 1
)
# Create fake data
dates <- seq.Date(Sys.Date() - 30, Sys.Date(), by = "day")
grps <- lapply(LETTERS[1:5], rep, 31) |> unlist()
dt <- data.table::data.table(
dates = rep(dates, 5),
groups = grps,
values = runif(length(grps), 1, 50)
)
# Build Plot
AutoPlots::River(
dt = dt,
PreAgg = TRUE,
XVar = "dates",
YVar = "values",
GroupVar = "groups",
legend.orient = "horizontal",
itemStyle.color = c("#FF4C4C", "#00BFFF", "#FFD700", "#32CD32", "#FF69B4")
)
# Create fake data
dates <- seq.Date(Sys.Date() - 30, Sys.Date(), by = "day")
grps <- lapply(LETTERS[1:5], rep, 31) |> unlist()
dt1 <- data.table::data.table(
dates = rep(dates, 5),
groups = grps,
values = runif(length(grps), 1, 50)
)
dates <- seq.Date(Sys.Date() - 30, Sys.Date(), by = "day")
grps <- lapply(LETTERS[6:10], rep, 31) |> unlist()
dt2 <- data.table::data.table(
dates = rep(dates, 5),
groups = grps,
values = runif(length(grps), 1, 50)
)
+-
# Build Plot
p1 <- AutoPlots::River(
dt = dt1,
PreAgg = TRUE,
XVar = "dates",
YVar = "values",
GroupVar = "groups",
title.text = "Data 1",
legend.orient = "horizontal",
itemStyle.color = c("#FF4C4C", "#00BFFF", "#FFD700", "#32CD32", "#FF69B4")
)
p2 <- AutoPlots::River(
dt = dt2,
PreAgg = TRUE,
XVar = "dates",
YVar = "values",
GroupVar = "groups"
title.text = "Data 2",
legend.orient = "horizontal",
itemStyle.color = c("#00FFFF", "#FF7F50", "#8A2BE2", "#00FF7F", "#FF4500"))
AutoPlots::display_plots_grid(
list(p1, p2),
cols = 1
)
# Create fake data
data <- AutoPlots::FakeDataGenerator(N = 1000)
data <- data[, .(
IndepVar = round(mean(Independent_Variable8), 3)
), by = c("Factor_1")]
# Build Plot
AutoPlots::Rosetype(
dt = data,
XVar = "Factor_1",
YVar = "IndepVar"
)
# Create fake data
data <- AutoPlots::FakeDataGenerator(N = 1000)
dt1 <- data[, .(
IndepVar = round(mean(Independent_Variable8), 3)
), by = c("Factor_1")]
dt2 <- data[, .(
IndepVar = round(mean(Independent_Variable8), 3)
), by = c("Factor_2")]
# Build Plots
p1 <- AutoPlots::Rosetype(
dt = dt1,
XVar = "Factor_1",
YVar = "IndepVar",
title.text = "Factor_1"
)
p2 <- AutoPlots::Rosetype(
dt = dt2,
XVar = "Factor_2",
YVar = "IndepVar",
title.text = "Factor_2"
)
AutoPlots::display_plots_grid(
list(p1, p2),
cols = 1
)
# Create data
n <- 1000 # rows
p <- 4 # number of variables
rho <- 0.8 # correlation between neighbors (AR(1))
mu <- c(50, 100, 0, 10) # means (length p)
sds <- c(10, 5, 3, 1) # standard deviations (length p)
Sigma_cor <- outer(1:p, 1:p, \(i, j) rho^abs(i - j)) # AR(1) correlation matrix
L <- chol(Sigma_cor) # Cholesky factor (upper-tri)
Z <- matrix(rnorm(n * p), nrow = n, ncol = p) # iid N(0,1)
X_cor <- Z %*% L # correlated, unit variance
X <- X_cor %*% diag(sds) # set std devs
X <- sweep(X, 2, mu, `+`) # set means
dt <- data.table::as.data.table(X)
data.table::setnames(dt, paste0("x", seq_len(p)))
# Build Plot
AutoPlots::Scatter(
dt = dt,
XVar = "x2",
YVar = "x1",
legend.show = FALSE
)
# Create data
n <- 1000 # rows
p <- 4 # number of variables
rho <- 0.8 # correlation between neighbors (AR(1))
mu <- c(50, 100, 0, 10) # means (length p)
sds <- c(10, 5, 3, 1) # standard deviations (length p)
Sigma_cor <- outer(1:p, 1:p, \(i, j) rho^abs(i - j)) # AR(1) correlation matrix
L <- chol(Sigma_cor) # Cholesky factor (upper-tri)
Z <- matrix(rnorm(n * p), nrow = n, ncol = p) # iid N(0,1)
X_cor <- Z %*% L # correlated, unit variance
X <- X_cor %*% diag(sds) # set std devs
X <- sweep(X, 2, mu, `+`) # set means
dt <- data.table::as.data.table(X)
data.table::setnames(dt, paste0("x", seq_len(p)))
# Build Plots
p1 <- AutoPlots::Scatter(
dt = dt,
XVar = "x2",
YVar = "x1",
legend.show = FALSE,
title.text = "x1 vs x2"
)
p2 <- AutoPlots::Scatter(
dt = dt,
XVar = "x3",
YVar = "x1",
legend.show = FALSE,
title.text = "x1 vs x3"
)
p3 <- AutoPlots::Scatter(
dt = dt,
XVar = "x3",
YVar = "x2",
legend.show = FALSE,
title.text = "x2 vs x3"
)
p4 <- AutoPlots::Scatter(
dt = dt,
XVar = "x4",
YVar = "x3",
legend.show = FALSE,
title.text = "x3 vs x4"
)
AutoPlots::display_plots_grid(
list(p1,p2,p3,p4),
cols = 2
)
# Create fake data
data <- AutoPlots::FakeDataGenerator(N = 100000)
data <- data[, .(
IndepVar = sum(Independent_Variable1)
), by = c("Factor_1","Factor_2")]
# Echarts Stacked Bar Chart
AutoPlots::StackedBar(
dt = data,
XVar = "Factor_1",
YVar = "IndepVar",
GroupVar = "Factor_2",
legend.right = 35,
legend.top = 45,
yAxis.nameTextStyle.padding = 40
)
# Create data
data <- AutoPlots::FakeDataGenerator(N = 1000, AddDate = T)
data <- data[, .(
IndepVar = mean(Independent_Variable8)
), by = c("DateTime")]
# Build plot
AutoPlots::Step(
dt = data,
XVar = "DateTime",
YVar = "IndepVar",
title.text = "IndepVar",
lineStyle.color = c("red","#3848FF","blue"),
legend.show = FALSE
)
# Create data
data <- AutoPlots::FakeDataGenerator(N = 1000, AddDate = T)
data <- data[, .(
IndepVar = mean(Independent_Variable8),
IndepVar2 = mean(Independent_Variable7),
IndepVar3 = mean(Independent_Variable6),
IndepVar4 = mean(Independent_Variable5)
), by = c("DateTime")]
# Build plot
p1 <- AutoPlots::Step(
dt = data,
XVar = "DateTime",
YVar = "IndepVar",
title.text = "IndepVar",
lineStyle.color = c("red","#3848FF","blue"),
legend.show = FALSE
)
p2 <- AutoPlots::Step(
dt = data,
XVar = "DateTime",
YVar = "IndepVar2",
title.text = "IndepVar2",
lineStyle.color = c("red","#3848FF","blue"),
legend.show = FALSE
)
p3 <- AutoPlots::Step(
dt = data,
XVar = "DateTime",
YVar = "IndepVar3",
title.text = "IndepVar3",
lineStyle.color = c("red","#3848FF","blue"),
legend.show = FALSE
)
p4 <- AutoPlots::Step(
dt = data,
XVar = "DateTime",
YVar = "IndepVar4",
title.text = "IndepVar4",
lineStyle.color = c("red","#3848FF","blue"),
legend.show = FALSE
)
AutoPlots::display_plots_grid(
list(p1,p2,p3,p4),
cols = 2
)