Plot.Radar {UnalR} | R Documentation |
Cree un gráfico de radar dinámico y flexible con dos diferentes paquetes
Description
Esta función proporciona excelentes herramientas y opciones para la visualización
de un gráfico de radar (también conocido como gráfico de araña) dinámico con
el objetivo de observar datos multivariados de forma bidimensional. Dicho radar
chart o spider plot se puede representar usando dos diferentes librerías que
son Plotly
y ECharts
, las cuales usan internamente JavaScript
.
Usage
Plot.Radar(
datos,
categoria,
variables,
estadistico = c("Promedio", "Mediana", "Varianza", "SD", "CV", "Min", "Max"),
colores,
rango,
ordinal = FALSE,
titulo = "",
libreria = c("plotly", "echarts"),
estilo = NULL,
estatico = FALSE
)
Arguments
datos |
Un data frame, se espera en formato de microdatos no un agregado. |
categoria |
Una variable categórica dentro del data frame ingresado en |
variables |
Lista (ya sea creada con la sintaxis |
estadistico |
Cadena de caracteres que indica el estadístico a graficar.
Los valores permitidos son |
colores |
Cadena de caracteres indicando los colores con los cuales se
deben colorear cada una de las trazas correspondiente a cada nivel del
argumento |
rango |
Vector numérico de longitud dos que indica el valor mínimo y máximo,
respectivamente. Si no conoce el dominio del estadístico seleccionado omita
éste parámetro, pues internamente se usará |
ordinal |
Si es |
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 radar. Los valores permitidos son |
estilo |
Lista compuesta por varios parámetros, los cuales van a ser usados de acuerdo con la librería especificada para graficar el radar y cuyo objetivo es personalizar pequeños detalles de éste.
|
estatico |
Si es |
Value
Retorna el radar (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 "plotly" o "echarts4r".
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 | × | |||||||
Examples
# library(dplyr)
Plot.Radar(
datos = ejSaberPro2020,
categoria = TIPO_COL,
variables = vars(PUNT_LECT_CRIT, PUNT_RAZO_CUANT, PUNT_INGLES),
colores = c("#2ACE82", "#FE2667", "#32E7C8", "#FF8D00"),
rango = c(0, NaN),
estilo = list(ply.Relleno = "tonext")
)
# ---------------------------------------------------------------------------
Plot.Radar(
datos = ejSaberPro2020,
categoria = SEDE_NOMBRE_ADM,
variables = vars(
PUNTAJE_GLOBAL, PUNT_RAZO_CUANT, PUNT_INGLES,
PUNT_LECT_CRIT, PUNT_COMP_CIUD, PUNT_COMU_ESCR
),
rango = c(0, NaN)
)
# ---------------------------------------------------------------------------
Plot.Radar(
datos = ejSaberPro2020,
categoria = SEDE_NOMBRE_ADM,
variables = vars(
PUNTAJE_GLOBAL, PUNT_RAZO_CUANT, PUNT_INGLES,
PUNT_LECT_CRIT, PUNT_COMP_CIUD, PUNT_COMU_ESCR
),
rango = c(0, NaN),
libreria = "echarts"
)
# ---------------------------------------------------------------------------
misColores <- c(
"#29ABE2", # AZUL CLARO | Amazonia
"#8CC63F", # VERDE | Bogota
"#CC241D", # ROJO | Caribe
"#0071BC", # AZUL VIVO | Manizales
"#F15A24", # NARANJA | Medellin
"#FBB03B", # AMARILLO | Orinoquia
"#93278F", # MORADO | Palmira
"#8A381A" # GRIS | Tumaco
)
Msj <- "Gr\u00e1fico de radar para representar los puntajes multivariados de la prueba Saber Pro."
Plot.Radar(
datos = ejSaberPro2020,
categoria = SEDE_NOMBRE_ADM,
variables = vars(
PUNTAJE_GLOBAL, PUNT_RAZO_CUANT, PUNT_INGLES,
PUNT_LECT_CRIT, PUNT_COMP_CIUD, PUNT_COMU_ESCR
),
estadistico = "SD",
colores = misColores,
rango = c(0, NaN),
titulo = "SPIDER PLOT",
libreria = "plotly",
estilo = list(
ply.LegendTitle = "SEDE:", ply.LegendPosition = list(x = 0, y = -0.15, orientation = "h"),
ply.Relleno = "tonext", ply.Opacidad = 0.8, ply.Credits = list(x = 0.8, y = -0.1, text = Msj)
)
)
# ---------------------------------------------------------------------------
Plot.Radar(
datos = ejSaberPro2020,
categoria = SEDE_NOMBRE_ADM,
variables = vars(
PUNTAJE_GLOBAL, PUNT_RAZO_CUANT, PUNT_INGLES,
PUNT_LECT_CRIT, PUNT_COMP_CIUD, PUNT_COMU_ESCR
),
estadistico = "CV",
colores = misColores,
rango = c(0, 0.25),
titulo = "RADAR CHART",
libreria = "echarts",
estilo = list(
e.Credits = Msj, e.Forma = "circle", e.Tema = 10,
e.LegType = "scroll", e.LegLoc = 0
)
)
# ---------------------------------------------------------------------------
# Ejemplo usando el caso estático (fmsb)
Plot.Radar(
datos = ejSaberPro2020,
categoria = TIPO_COL,
variables = vars(
PUNT_RAZO_CUANT, PUNT_INGLES, PUNT_LECT_CRIT, PUNT_COMP_CIUD, PUNT_COMU_ESCR
),
estadistico = "SD",
colores = c("#89D8FF", "#9CFF86", "#FFA568", "#FF7F7F"),
titulo = "RADAR CHART DE LA DESVIACI\u00d3N EST\u00c1NDAR\nPOR COMPONENTE EVALUADO",
# rango = c(10, 40),
estatico = TRUE,
estilo = list(
gg.Range = TRUE, gg.plty = 5, gg.plwd = 4, gg.cglwd = 2, gg.cglcol = "#856AA1"
)
)