La función plotStream
del paquete sinkr
necesita un vector x
con los valores del eje X y una matriz y
que contenga las series de datos como columnas correspondientes a x
.
En este bloque de código estamos generando un vector con 500 valores y una matriz con 30 columnas (series) y 500 filas, una para cada observación.
Las series de datos se han simulado haciendo uso de splines.
set.seed(1)
m <- 500
n <- 30
x <- seq(m)
y <- matrix(0, nrow = m, ncol = n)
colnames(y) <- seq(n)
for(i in seq(ncol(y))) {
mu <- runif(1, min = 0.25 * m, max = 0.75 * m)
SD <- runif(1, min = 5, max = 20)
TMP <- rnorm(1000, mean = mu, sd = SD)
HIST <- hist(TMP, breaks = c(0, x), plot = FALSE)
fit <- smooth.spline(HIST$counts ~ HIST$mids)
y[, i] <- fit$y
}
y <- replace(y, y < 0.01, 0)
Gráfico básico
Para crear un stream plot puedes pasar el vector numérico y la matriz a la función plotStream
. Ten en cuenta que se aplicará un ruido aleatorio al gráfico, por lo que para crear siempre la misma ilustración necesitas establecer una semilla.
# install.packages("remotes")
# remotes::install_github("marchtaylor/sinkr")
library(sinkr)
# Streamgraph
set.seed(1)
plotStream(x, y,
xlim = c(100, 400),
ylim = c(-125, 125))
Ruido
La cantidad de ruido aplicado se puede personalizar con los argumentos frac.rand
y spar
. El primero controla la fracción del total de los datos para definir el rango del ruido mientras que el segundo controla el suavizado.
# install.packages("remotes")
# remotes::install_github("marchtaylor/sinkr")
library(sinkr)
# Streamgraph
set.seed(1)
plotStream(x, y,
xlim = c(100, 400),
ylim = c(-125, 125),
frac.rand = 0.2,
spar = 0.5)
Paleta de colores
La paleta de colores por defecto es "rainbow"
. Sin embargo, puedes personalizarla con el argumento col
. En el ejemplo siguiente estamos generando una paleta de 30 colores con hcl.colors
(el número de columnas de y
).
# install.packages("remotes")
# remotes::install_github("marchtaylor/sinkr")
library(sinkr)
# Colores
cols <- hcl.colors(30, "BluYl")
# Streamgraph
set.seed(1)
plotStream(x, y,
xlim = c(100, 400),
ylim = c(-125, 125),
col = cols)
Personalización del borde
El color, ancho y tipo de línea de los polígonos usados para crear el gráfico se pueden personalizar con los argumentos border
, lwd
y lty
, respectivamente.
# install.packages("remotes")
# remotes::install_github("marchtaylor/sinkr")
library(sinkr)
# Streamgraph
set.seed(1)
plotStream(x, y, xlim = c(100, 400),
ylim = c(-125, 125),
col = hcl.colors(30, "Blues 3"),
border = "white", lwd = 1, lty = 1)
La función proporciona tres métodos diferentes para ordenar las series con el argumento order.method
. El valor por defecto es "as.is"
, pero también puedes establecer "max"
o "first"
. Escribe ?plotStream
para detalles adicionales.
Método “max”
# install.packages("remotes")
# remotes::install_github("marchtaylor/sinkr")
library(sinkr)
# Streamgraph
set.seed(1)
plotStream(x, y, xlim = c(100, 400),
ylim = c(-125, 125),
col = hcl.colors(30, "Blues 3"),
order.method = "max")
Método “first”
# install.packages("remotes")
# remotes::install_github("marchtaylor/sinkr")
library(sinkr)
# Streamgraph
set.seed(1)
plotStream(x, y, xlim = c(100, 400),
ylim = c(-125, 125),
col = hcl.colors(30, "Blues 3"),
order.method = "first")
También te puede interesar