Home > other >  How to add Title to ggplot graph by condition in R?
How to add Title to ggplot graph by condition in R?

Time:05-01

I have the following dataframe and stacked area chart based on it

df <- data.frame (Year  = c("2010", "2010",  "2010", "2010", "2011","2011","2011","2011","2012","2012","2012","2012","2013","2013","2013","2013"),
                  Sales = c(100000000,200000000,50000000,500000000,400000000,200000000,400000000,145000000,100000000,456000000,345000000,321000000,100000000,200000000,250000000,400000000),
                 Category = c("A", "B",  "C", "D","A", "B",  "C", "D","A", "B",  "C", "D","A", "B",  "C", "D"))

df$Year <- as.integer(df$Year)

df %>% 
  ggplot(aes(x = Year, y = Sales, fill = Category))  
  geom_area()   scale_x_continuous(breaks=2010:2013)

Now I want to automate the process and add the title to the chart based on the earliest year in the dataframe, so somehow I want to code this: "Sale since min(df$Year) by categories"

CodePudding user response:

You can use a paste in ggtitle() or labs(title = ) function.

library(dplyr)
library(ggplot2)

df %>% 
  ggplot(aes(x = Year, y = Sales, fill = Category))  
  geom_area()   
  scale_x_continuous(breaks=2010:2013)  
  ggtitle(paste("Sale since", min(df$Year), "by categories"))

Data

df <- structure(list(Year = c(2010L, 2010L, 2010L, 2010L, 2011L, 2011L, 
2011L, 2011L, 2012L, 2012L, 2012L, 2012L, 2013L, 2013L, 2013L, 
2013L), Sales = c(1e 08, 2e 08, 5e 07, 5e 08, 4e 08, 2e 08, 4e 08, 
1.45e 08, 1e 08, 4.56e 08, 3.45e 08, 3.21e 08, 1e 08, 2e 08, 
2.5e 08, 4e 08), Category = c("A", "B", "C", "D", "A", "B", "C", 
"D", "A", "B", "C", "D", "A", "B", "C", "D")), row.names = c(NA, 
-16L), class = "data.frame")

  • Related