Cómo crear un gráfico de línea y barras juntas en R.
Hola, disculpa si esta publicación está formateada incorrectamente, nunca he publicado en este foro. Estaba buscando ayuda para crear un gráfico de barras y un gráfico de líneas en un solo gráfico. El código que tengo a continuación es lo que tengo hasta ahora. Sin embargo, cuando realmente grafico las parcelas, obtengo el gráfico adjunto. ¿Dónde estoy cometiendo un error?
applemusic_subsrev <- read_csv("applemusic_revenueandsubs.csv", showcol_types = F)
applemusic_subsrev2 <- subset(applemusic_subsrev, select = c(1:3))[-c(7),]
applemusic_subsrev2 <- applemusic_subsrev2 |> filter(!is.na(Revenue)) |>
mutate(Revenue = gsub("[\\$]", "", Revenue),
Revenue = gsub("billion", "", Revenue),
Users = gsub("million", "", Users))
applemusic_subsrev2$Revenue <- as.numeric(as.character(applemusic_subsrev2$Revenue))
applemusic_subsrev2$Users <- as.numeric(as.character(applemusic_subsrev2$Users)) |>
mutate(Revenue = Revenue*1000)
applemusic_subsrev2 <- applemusic_subsrev2 |> mutate(Revenue = Revenue*1000)
H1 Ingresos en millones
df <- data.frame(applemusic_subsrev2)
H1 Marco de datos para gráfico
ggplot(df) +
geom_bar(aes(x = Year , weight = Users), fill = "grey70") +
geom_line(aes(x = Year, y = Revenue, colour = "yellow")) +
scale_colour_manual(name = "Legend", labels = c("Value in 100"), values = c("black"))
Datos Dput
estructura(list(Año = c(2015, 2016, 2017, 2018, 2019, 2020, NA), Ingresos = c(NA, "$0.6 billones", "$1.1 billones", "$1.8 billones", "$2.8 billones", "$4.1 billones", NA), Usuarios = c("11 millones", "20 millones", "27 millones", "40 millones", "50 millones", "72 millones",
NA),...4 = c(NA, NA, NA, NA, NA, NA, NA)), row.names = c(NA, -7L), spec = estructura(list(cols = list(Año = estructura(list(), class = c("collector_double", "collector")), Ingresos = estructura(list(), class = c("collector_character", "collector")), Usuarios = estructura(list(), class = c("collector_character", "collector")),...4 = estructura(list(), class = c("collector_logical", "collector"))), default = estructura(list(), class = c("collector_guess", "collector")), delim = ","), class = "col_spec"), problems = <pointer: 0x00000250d76dea50="">, class = c("spec_tbl_df", "tbl_df", "tbl", "data.frame"))
davy.ai
Parece que el diagrama de barras se está trazando con el eje y comenzando en 0, mientras que el diagrama de líneas se está trazando con el eje y comenzando en un valor superior a 0. Esto puede hacer que el diagrama de líneas parezca mucho más empinado de lo que realmente es. Para solucionar esto, puede utilizar el parámetro
ylim
enggplot()
para establecer los límites del eje y para ambos diagramas en el mismo valor:Además, he agregado el parámetro
stat = "identity"
ageom_bar()
para trazar los valores deUsers
directamente, en lugar de calcular el peso de cada barra utilizandoweight = Users
. También he realizado algunos pequeños cambios de formato para mayor consistencia (por ejemplo, usandocolor
en lugar decolour
).