#'Grafico Just about rigth
#'
#'Crea un gráfico Just about rigth con colores fijos para los extremos.
#'
#'
#'
#'@param datos Debe ser un data frame con 3 columnas, correspondientes a las muestras, los atributos y los valores.
#'@param muestras Nombre de la columna en que se almacenan los identificadores de las muestras.
#'@param atributos Nombre de la columna en que se almacenan los identificadores de los atributos.
#'@param valores Nombre de la columna en que se almacenan los identificadores de los valores.
#'@param izquierda Nombre del valor de escala del lado izquierdo del gráfico
#'@param centro Nombre del valor de escala del centro del grafico
#'@param derecha Nombre del valor de escala del lado derecho del grafico
#'@return El resultado es un gráfico Just about rigth
#'@export
grafico_jar <- function(datos = datos_jar,
muestras = "Muestra",
atributos = "Atributo",
valores = "Valor",
izquierda = "Menos de lo que me gusta",
centro = "Justo como me gusta",
derecha = "Más de lo que me gusta") {
library(tidyverse)
library(agricolae)
#Se renombran las columnas
datos <- datos %>%
rename("muestras" = muestras,
"atributos" = atributos,
"valores" = valores)
grafico_jar <- datos %>%
group_by(valores, atributos, muestras) %>%
summarise(absoluto = n(), .groups = "keep") %>%
group_by(atributos, muestras) %>%
mutate(frecuencia = absoluto / sum(absoluto),
etiqueta = as.character(str_c(round(frecuencia, 2) * 100, "%"))) %>%
mutate(valores = factor(
valores,
levels = c(derecha,
centro,
izquierda),
ordered = TRUE
)) %>%
ggplot(aes(
x = frecuencia,
y = atributos,
fill = valores,
label = etiqueta
)) +
geom_bar(position = "stack",
stat = "identity",
width = 0.5) +
geom_text(position = position_stack(vjust = 0.5), size = 2) +
labs(xlab = NULL,
ylab = NULL) +
scale_fill_manual(values = c(
rgb(255 / 255, 255 / 255, 102 / 255),
rgb(169 / 255, 209 / 255, 143 / 255),
rgb(255 / 255, 255 / 255, 102 / 255)
)) +
theme_minimal() +
theme(
axis.title.x = element_blank(),
axis.text.x = element_blank(),
axis.ticks.x = element_blank(),
axis.title.y = element_blank(),
legend.position = "none"
) +
facet_wrap( ~ muestras)
return(grafico_jar)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.