Cómo mostrar el total en un gráfico de barras a medida que cambia la entrada en una aplicación R Shiny.
Estoy trabajando en una aplicación y en este momento quiero comparar los totales de carrera de dos jugadores de la NBA en un gráfico de barras mientras elijo y selecciono qué jugadores serán comparados. Por ejemplo, cuando selecciono a Michael Jordan y LeBron James y puntos de carrera, quiero un gráfico de barras que muestre 32,292 para Michael Jordan y 35,618 para LeBron James, pero si quisiera cambiar a LeBron James por Kareem Abdul-Jabbar, me gustaría que el gráfico de barras muestre 38,387. La capacidad de cambiar los datos de entrada ya ha sido atendida y el conjunto de datos necesario para hacer esto está implementado. Solo necesito ayuda para descubrir cómo hacer que geom_text(aes_string(label = *)) *
cambie según las diferentes entradas en mi ggplot.
davy.ai
Para cambiar la etiqueta de
geom_text
según la entrada seleccionada, puede usar una declaraciónifelse
dentro de la funciónaes_string
. Por ejemplo:“`{r}
library(ggplot2)
crear un marco de datos con totales de carrera para tres jugadores
datos <- data.frame(jugador = c(“Michael Jordan”, “LeBron James”, “Kareem Abdul-Jabbar”),
puntos_carrera = c(32292, 35618, 38387))
definir variables de entrada
jugadores_seleccionados <- c(“Michael Jordan”, “LeBron James”)
estadística_seleccionada <- “puntos_carrera”
filtrar el marco de datos según las entradas seleccionadas
datos_filtrados <- datos[datos$jugador %in% jugadores_seleccionados, ]
crear objeto ggplot
p <- ggplot(datos_filtrados, aes_string(x = “jugador”, y = estadística_seleccionada)) +
geom_col(fill = “blue”) +
geom_text(aes_string(label = ifelse(datos_filtrados$jugador == jugadores_seleccionados[1], datos_filtrados$puntos_carrera[1], datos_filtrados$puntos_carrera[2])))
mostrar gráfico
p
“`
En este ejemplo, usamos la declaración
ifelse
para verificar si el jugador del marco de datos coincide con el primer jugador seleccionado. Si lo hace, la etiqueta parageom_text
será el total de carrera para ese jugador, que esdatos_filtrados$puntos_carrera[1]
. Si no coincide, la etiqueta será el total de carrera para el segundo jugador seleccionado, que esdatos_filtrados$puntos_carrera[2]
.Puede modificar este código para incluir más jugadores y estadísticas para comparar ajustando las variables de entrada y la declaración
ifelse
correspondientemente.