R/grafico_jar.R

Defines functions grafico_jar

Documented in grafico_jar

#'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)
}
anmarsan/sandres documentation built on Sept. 20, 2022, 2:01 p.m.