简体   繁体   中英

R geom_bar: How can I return the Y-axis title to my graph?

I am working on creating a geom_bar based on the built in esoph dataset in Rstudio. At first, the graph had both its x- and y-axis title. However, as I try to format the title, the Y-axis title went missing. I tried changing the size of the title but it never showed up again. Anyone had any idea how to fix it ?

data(esoph)
data_esoph <- esoph %>% group_by(agegp) %>% 
              summarise(Total_number_of_control_case = sum(ncontrols)) %>% 
              rename(Age_group = agegp)
plot_bar <- data_esoph %>% ggplot(aes(x = Age_group, y = Total_number_of_control_case, fill = Age_group)) +
            geom_bar(stat = "identity", position = "dodge") +
            labs(title ="Number of control cases by age group", subtitle = "Data source: built-in esoph dataset", x = "Age group", y = "Cases", fill = "Age group") +
            geom_text(aes(label = Total_number_of_control_case), vjust = 1.5, colour = "white") +
            theme_cleveland() +
            theme(plot.title = element_text(face = "bold", size = 16, hjust = 0.5), plot.subtitle = element_text(face = "italic", size = 10, hjust = 0.5),
                  axis.title = element_text(face = "bold", size = 10), legend.title = element_text(face = "bold", size = 10)) + 
            scale_fill_jama() 
print(plot_bar)

It looks the default for theme_cleveland() is to remove the y-axis label. Are you sure you need that theme? If you must, you'll need to specify the axis.title.y() manually:

data(esoph)
library(dplyr)
library(ggplot2)
library(ggsci)
library(ggpubr)

data_esoph <- esoph %>% group_by(agegp) %>% 
  summarise(Total_number_of_control_case = sum(ncontrols)) %>% 
  rename(Age_group = agegp)

data_esoph %>% ggplot(aes(x = Age_group, y = Total_number_of_control_case, fill = Age_group)) +
  geom_bar(stat = "identity", position = "dodge") +
  labs(title ="Number of control cases by age group", subtitle = "Data source: built-in esoph dataset", x = "Age group", y = "Cases", fill = "Age group") +
  geom_text(aes(label = Total_number_of_control_case), vjust = 1.5, colour = "white") +
  ggpubr::theme_cleveland() +
  ggsci::scale_fill_jama() +
  theme(plot.title = element_text(face = "bold", size = 16, hjust = 0.5),
        plot.subtitle = element_text(face = "italic", size = 10, hjust = 0.5),
        axis.title = element_text(face = "bold", size = 10),
        legend.title = element_text(face = "bold", size = 10),
        axis.title.y = element_text())

在此处输入图像描述

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM