Esta función proporciona excelentes herramientas y opciones para la visualización de un gráfico de barras apiladas con el objetivo de mostrar el tamaño relativo (como porcentaje) de una variable categórica, subdivididas por colores en función de un subgrupo. Dicha gráfica se va a representar usando la librería Highcharter, la cual usa internamente JavaScript.

Plot.Apiladas(
  datos,
  ejeX,
  valores,
  categoria,
  ano,
  periodo,
  addPeriodo = FALSE,
  colores,
  titulo = "",
  libreria = c("highcharter", "plotly"),
  estilo = NULL,
  estatico = FALSE
)

Argumentos

datos

Un data frame, no un vector numérico.

ejeX

Una variable categórica dentro del data frame ingresado en datos.

valores

Variable numérica que contiene los valores que desea graficar.

categoria

Una variable categórica dentro del data frame ingresado en datos.

ano

Argument deprecated. This Argument still exist but will be removed in the next version.

periodo

Argument deprecated. This Argument still exist but will be removed in the next version.

addPeriodo

Argument deprecated. This Argument still exist but will be removed in the next version.

colores

Cadena de caracteres indicando los colores con los cuales se deben colorear cada una de las series correspondiente a cada nivel del argumento categoria. Si no se introduce algún vector se usará la paleta rainbow por defecto.

titulo

Cadena de caracteres indicando el título principal del plot.

libreria

Cadena de caracteres que indica el paquete con el cual se realizará el plot. Los valores permitidos son "highcharter" (valor predeterminado) y "plotly". Los valores se emparejarán parcialmente.

estilo

Lista compuesta por varios parámetros, los cuales van a ser usados para graficar las barras apiladas y cuyo objetivo es personalizar pequeños detalles de éste.

  • hc.Tema, hc.Credits, gg.Tema, gg.Legend y gg.Texto: Igual uso que en Plot.Series()

  • LegendTitle: Cadena de caracteres indicando un título para la leyenda (diferentes niveles del argumento categoria).

  • ply.LegendPosition: Igual uso que en Plot.Series()

  • ply.Credits: Igual uso que en Plot.Series()

  • gg.Bar: Igual uso que en Plot.Barras()

estatico

Si es FALSE (valor predeterminado) el gráfico a retornar será dinámico (dependiendo de la librería seleccionada), en caso contrario se retornará un gráfico estático construido con ggplot2.

Valor

Retorna el diagrama de barras apiladas (objeto widget de HTML) creado. La clase del objeto retornado será un "htmlwidget" y adicionalmente pertenecerá a la clase "highchart".

Lista de argumentos de estilo

Sabemos que puede ser abrumador el número de argumentos dentro del parámetro estilo, pero es necesario si queremos ofrecer al usuario la máxima personalización dentro de cada función usando cualquier librería. Por tal razón, a continuación, se detalla el listado completo de argumentos, usados al especificar la librería y en qué función están presentes (marcado con una × si lo posee).

Libreríaestilo$Plot.Series()Plot.Barras()Plot.Apiladas()Plot.Boxplot()Plot.Radar()Plot.Treemap()Plot.Torta()Plot.Drilldown()
gg.Tema××××
lgg.Texto××××
lgg.Legend×××
lgg.Linea×
lgg.Punto×
lgg.Bar××
lgg.VarWidth×
lgg.OutShape×
lgg.JitWidth×
lgg.JitSize×
lgg.Range×
ggplot2gg.plty×
lgg.plwd×
lgg.cglwd×
lgg.cglcol×
lgg.fontsize.title×
lgg.fontsize.labels×
lgg.fontcolor.labels×
lgg.border.lwds×
lgg.border.col×
lgg.lowerbound.cex.labels×
lgg.force.print.labels×
gg.overlap.labels×
»hc.Tema×××××××
lhc.Credits×××××××
highcharterhc.BoxInfo×
lhc.Slider×
»hc.borderRadius×
ply.Credits×××××××
°ply.Legend××
°ply.LegendPosition××××
plotlyply.Interaction××
°ply.Relleno×
°ply.Opacidad××
ply.LegendTitle×
dygraphsdyg.LegendWidth×
»dyg.Resaltar×
e.Tema×
le.Credits×
echarts4re.Forma×
le.LegType×
e.LegLoc×

Examples

# Ejemplo generalizado (sin uso de un consolidado como input)
# library("tibble"); library("dplyr")
set.seed(42)
Blood <- tibble(
  Quarter = sample(c("I", "II", "III", "IV"), size = 200, replace = TRUE),
  Group   = sample(
    c("O", "A", "B", "AB"), size = 200, prob = c(.5, .3, .16, .4), replace = TRUE
  ),
  Prevalence = round(runif(200)*100)
)
Plot.Apiladas(
  datos     = Blood     ,
  ejeX      = Quarter   ,
  valores   = Prevalence,
  categoria = Group     ,
  colores   = c("#FF553D", "#A5FF67", "#40D2FF", "#FFDB5C")
)
#> Warning: ¡Se usará la librería 'highcharter' por defecto para realizar el plot!
#> Warning: 
#>     ¡Ha ingresado un dataframe que no está de forma condensada, es decir,
#>     para cada categoría existe más de un valor para un mismo punto del eje X!
#>     Se sumará los valores por defectos para dichos puntos que gocen de +1 valor
#>            
# --------------------------------------------------------------------------- Txt <- "BARRAS APILADAS EN FUNCI\u00d3N DEL NIVEL ACAD\u00c9MICO Y EL A\u00d1O" Msj <- paste( "Se considera \u00fanicamente los valores obtenidos en el primer periodo", "acad\u00e9mico de cada a\u00f1o." ) Plot.Apiladas( datos = ejConsolidadoGrad |> filter(YEAR %in% c(2018:2020), SEMESTRE == 1), categoria = "NIVEL", # Pruebe también con alguna de -> unique(ejConsolidadoGrad$Variable) colores = c("#FFA700", "#C10AA1", "#01CDFE", "#00FF44", "#FF0040"), titulo = Txt, estilo = list(LegendTitle = "NIVEL ACAD\u00c9MICO:", hc.Tema = 4, hc.Credits = Msj) ) #> Warning: ¡Se usará la librería 'highcharter' por defecto para realizar el plot! #> Warning: Unquoting language objects with `!!!` is deprecated as of rlang 0.4.0. Please #> use `!!` instead. #> #> # Bad: dplyr::select(data, !!!enquo(x)) #> #> # Good: dplyr::select(data, !!enquo(x)) # Unquote single quosure #> dplyr::select(data, !!!enquos(x)) # Splice list of quosures #> This warning is displayed once every 8 hours. #> Warning: #> ¡Ha ingresado un dataframe que no está de forma condensada, es decir, #> para cada categoría existe más de un valor para un mismo punto del eje X! #> Se sumará los valores por defectos para dichos puntos que gocen de +1 valor #>
Plot.Apiladas( datos = ejConsolidadoGrad |> filter(YEAR %in% c(2018:2020), SEMESTRE == 1), categoria = "AREAC_SNIES", colores = c("#D2D4DC", "#FF8ABF", "#945BC2", "#D11879", "#FF7F7F", "#FFA568", "#9CFF86", "#89D8FF"), titulo = "BARRAS APILADAS EN FUNCI\u00d3N DEL \u00c1REA DEL SNIES", libreria = "plotly", estilo = list( LegendTitle = "NIVEL ACAD\u00c9MICO:", ply.Credits = list(x = 0.5, y = 1.5, text = gsub("l p", "l\np", Msj)), ply.LegendPosition = list(x = 0.04, y = -0.3, orientation = "h") ) )
# Ejemplo usando el caso estático (ggplot2) Plot.Apiladas( datos = ejConsolidadoGrad |> filter(YEAR %in% c(2019:2021), SEMESTRE == 1), categoria = "NIVEL", colores = c("#FFA700", "#C10AA1", "#01CDFE", "#00FF44", "#FF0040"), titulo = gsub("L AC", "L\nAC", Txt), estatico = TRUE, estilo = list( LegendTitle = "NIVEL ACAD\u00c9MICO:", gg.Tema = 8, gg.Legend = list(legend.position = "right", legend.direction = "vertical"), gg.Bar = list(width = 0.6, color = "#000000"), gg.Texto = list( subtitle = "\u00bb\u00bb\u00bb", tag = "\u00ae", caption = "Informaci\u00f3n Disponible desde 2009-1" ) ) ) #> Warning: #> ¡Ha ingresado un dataframe que no está de forma condensada, es decir, #> para cada categoría existe más de un valor para un mismo punto del eje X! #> Se sumará los valores por defectos para dichos puntos que gocen de +1 valor #>