Based on the data and code below, I want to change the sequence of y-axis to be the same as in the Value column.
In the below screenshot it can be seen that 5-14 is in the middle of the plot and I want it to be after < 5 years just like in the data.
How can I do this?
Desired sequence:
Y-AXIS LABELS
85 +
75 – 84
65 – 74
55 – 64
45 – 54
35 – 44
25 – 34
15 – 24
5 – 14
< 5 years
Data (pop_gen_df):
structure(list(age_group = c("< 5 years", "5 - 14", "15 - 24",
"25 - 34", "35 - 44", "45 - 54", "55 - 64", "65 - 74",
"75 - 84", "85 +", "< 5 years", "5 - 14", "15 - 24", "25 - 34",
"35 - 44", "45 - 54", "55 - 64", "65 - 74", "75 - 84",
"85 +"), Type = c("males", "males", "males", "males", "males",
"males", "males", "males", "males", "males", "females", "females",
"females", "females", "females", "females", "females", "females",
"females", "females"), Value = c(-6, -13, -13, -15, -17, -15,
-11, -6, -3, -1, 6, 12, 12, 14, 16, 15, 12, 7, 4, 2)), row.names = c(NA,
-20L), class = c("tbl_df", "tbl", "data.frame"))
Code:
library(tidyverse)
library(plotly)
# Plot
gg_pop_hisp = ggplot(pop_hisp_df, aes(x = age_group, y = Value, fill = Type)) +
geom_bar(data = subset(pop_hisp_df, Type == "females"), stat = "identity") +
geom_bar(data = subset(pop_hisp_df, Type == "males"), stat = "identity") +
scale_y_continuous(labels = function(z) paste0(abs(z), "%")) + # CHANGE
scale_fill_manual(name = "Legend", values = c("females"="#FC921F", "males"="#149ECE"), labels = c("Females", "Males")) +
ggtitle("HISPANIC POPULATION BY GENDER AND AGE GROUP") +
labs(x = "PERCENTAGE POPULATION", y = "AGE GROUPS", fill = "Gender") +
theme_minimal() +
coord_flip()
# Interactive
ggplotly(gg_pop_hisp)


