
Cree un gráfico circular/torta/pie dinámico/estático y flexible con dos diferentes paquetes
Plot.Torta.Rd
Esta función permite mostrar de forma interactiva (y estática) una descripción
compacta y general de una variable con sus respectivas categorías. Dicho diagrama
se puede representar usando dos diferentes librerías que son Highcharter
y
Plotly
, las cuales usan internamente JavaScript
.
Uso
Plot.Torta(
datos,
valores,
categoria,
ano,
periodo,
colores,
titulo = "",
label = "",
addPeriodo = FALSE,
libreria = c("highcharter", "plotly"),
estilo = NULL,
estatico = FALSE
)
Argumentos
- datos
Un data frame, no un vector numérico.
- 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.
- 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 paletarainbow
por defecto.- titulo
Cadena de caracteres indicando el título principal del plot.
- label
Cadena de caracteres indicando la etiqueta a la que hace referencia el plot.
- addPeriodo
Argument deprecated. This Argument still exist but will be removed in the next version.
- 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 de acuerdo con la librería especificada para graficar la torta y cuyo objetivo es personalizar pequeños detalles de ésta.
LegendTitle
,hc.Tema
,hc.Credits
yply.Credits
: Igual uso que enPlot.Series()
ply.Legend
: Igual uso que enPlot.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 conggplot2
.
Valor
Retorna el diagrama circular (objeto widget de HTML) creado. La clase del objeto retornado será un "htmlwidget" y dependiendo de la librería usada pertenecerá adicionalmente a la clase "highchart" o "plotly".
Detalles
Al usar el paquete Highcharter
y usar las opciones de descarga, el nombre del
archivo descargado será la concatenación del plot graficado y la categoría usada,
así, por ejemplo, si se graficó el diagrama de pie para la categoría "Sexo" el
nombre será PlotTorta_Sexo.png
.
Nota
Los gráficos circulares son una forma muy mala de mostrar información. El ojo es bueno para juzgar medidas lineales y malo para juzgar áreas relativas. Un gráfico de barras o un gráfico de puntos es una forma preferible de mostrar este tipo de datos.
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ía | estilo$ | Plot.Series() | Plot.Barras() | Plot.Apiladas() | Plot.Boxplot() | Plot.Radar() | Plot.Treemap() | Plot.Torta() | Plot.Drilldown() |
— | gg.Tema | × | × | × | × | ||||
l | gg.Texto | × | × | × | × | ||||
l | gg.Legend | × | × | × | |||||
l | gg.Linea | × | |||||||
l | gg.Punto | × | |||||||
l | gg.Bar | × | × | ||||||
l | gg.VarWidth | × | |||||||
l | gg.OutShape | × | |||||||
l | gg.JitWidth | × | |||||||
l | gg.JitSize | × | |||||||
l | gg.Range | × | |||||||
ggplot2 | gg.plty | × | |||||||
l | gg.plwd | × | |||||||
l | gg.cglwd | × | |||||||
l | gg.cglcol | × | |||||||
l | gg.fontsize.title | × | |||||||
l | gg.fontsize.labels | × | |||||||
l | gg.fontcolor.labels | × | |||||||
l | gg.border.lwds | × | |||||||
l | gg.border.col | × | |||||||
l | gg.lowerbound.cex.labels | × | |||||||
l | gg.force.print.labels | × | |||||||
— | gg.overlap.labels | × | |||||||
» | hc.Tema | × | × | × | × | × | × | × | |
l | hc.Credits | × | × | × | × | × | × | × | |
highcharter | hc.BoxInfo | × | |||||||
l | hc.Slider | × | |||||||
» | hc.borderRadius | × | |||||||
• | ply.Credits | × | × | × | × | × | × | × | |
° | ply.Legend | × | × | ||||||
° | ply.LegendPosition | × | × | × | × | ||||
plotly | ply.Interaction | × | × | ||||||
° | ply.Relleno | × | |||||||
° | ply.Opacidad | × | × | ||||||
• | ply.LegendTitle | × | |||||||
dygraphs | dyg.LegendWidth | × | |||||||
» | dyg.Resaltar | × | |||||||
— | e.Tema | × | |||||||
l | e.Credits | × | |||||||
echarts4r | e.Forma | × | |||||||
l | e.LegType | × | |||||||
— | e.LegLoc | × |
Ejemplos
# Ejemplo generalizado (sin uso de un consolidado como input)
# library("tibble"); library("dplyr")
set.seed(42)
Blood <- tibble(
Group = sample(c("O", "A", "B", "AB"), size = 200, prob = c(0.5, 0.3, 0.16, 0.4), replace = TRUE),
Prevalence = round(runif(200)*100)
)
Plot.Torta(
datos = Blood ,
valores = Prevalence,
categoria = Group ,
colores = c("#FF553D", "#A5FF67", "#40D2FF", "#FFDB5C"),
label = "No. of Prevalence"
)
#> Warning: ¡Se usará la librería 'highcharter' por defecto para realizar el plot!
Plot.Torta(
datos = Blood ,
valores = Prevalence,
categoria = Group ,
colores = c("#FF553D", "#A5FF67", "#40D2FF", "#FFDB5C"),
titulo = "DISTRIBUTION OF BLOOD GROUPS",
estatico = TRUE,
estilo = list(gg.Tema = 6)
)
Plot.Torta(
datos = Blood ,
valores = Prevalence,
categoria = Group ,
colores = c("#FF553D", "#A5FF67", "#40D2FF", "#FFDB5C"),
titulo = "DISTRIBUTION OF BLOOD GROUPS",
estatico = TRUE,
estilo = list(
gg.Tema = 7, gg.Donut = TRUE, gg.Percent = FALSE,
gg.Texto = list(
subtitle = "Synthetic or fake data that resembles real-world data",
caption = "* Data Simulation",
tag = "\u00ae"
)
)
)
# ---------------------------------------------------------------------------
col <- c("#F15A24", "#8CC63F")
Msj <- "Distribuci\u00f3n de estudiantes graduados en el primer periodo acad\u00e9mico del 2021."
Txt <- "DISTRIBUCI\u00d3N DE GRADUADOS POR MODALIDAD DE FORMACI\u00d3N"
Plot.Torta(
datos = ejConsolidadoGrad |> filter(YEAR==2021, SEMESTRE==1),
categoria = "TIPO_NIVEL",
colores = col,
titulo = paste(Txt, "(Periodo 2021-1)"),
label = "N\u00famero de Graduados",
libreria = "highcharter",
estilo = list(
LegendTitle = "\u00c9sta es una descripci\u00f3n para la leyenda:",
hc.Tema = 7, hc.Credits = Msj
)
)
# ---------------------------------------------------------------------------
Msj <- "Distribuci\u00f3n hist\u00f3rica de estudiantes graduados (desde el 2009-I al 2021-I)."
Plot.Torta(
datos = ejConsolidadoGrad,
categoria = "TIPO_NIVEL",
colores = col,
titulo = gsub("DOS POR", "DOS\nPOR", Txt),
libreria = "plotly",
estilo = list(
ply.Legend = "inside", ply.Credits = list(
x = 0.8, y = 1.1, text = paste0("<b>", Msj, "</b>")
)
)
)