如何根据x轴更改折线图的颜色?

时间:2021-03-13 06:27:21

标签: r ggplot2

我有以下数据框

structure(list(dteday = c("2011-01", "2011-02", "2011-03", "2011-04", 
"2011-05", "2011-06", "2011-07", "2011-08", "2011-09", "2011-10", 
"2011-11", "2011-12", "2012-01", "2012-02", "2012-03", "2012-04", 
"2012-05", "2012-06", "2012-07", "2012-08", "2012-09", "2012-10", 
"2012-11", "2012-12"), cnt = c(38189L, 48215L, 63422L, 94870L, 
135821L, 143512L, 141341L, 136691L, 127418L, 123511L, 102167L, 
87323L, 96744L, 103137L, 164875L, 174224L, 195865L, 202830L, 
203607L, 214503L, 218573L, 198841L, 152664L, 123713L)), row.names = c(NA, 
-24L), class = c("tbl_df", "tbl", "data.frame"))

这是我当前的折线图

 ggplot(bike2, aes(x=dteday, y=cnt, group = 1))+
     geom_line(color = "green", size = 1.2) + 
     labs(title = "Bike Rentals Per Month",
          x = "Month/Year",
          y = "Count") + 
          theme_solarized() +
          theme(axis.text.x=element_text(angle=45, hjust=1))

enter image description here

x 轴是根据月份和年份。我想要的是 2011 年为黄色,然后 2012 年为绿色,以便更好地区分年份。

1 个答案:

答案 0 :(得分:2)

从数据中提取年份数据并将其用作color中的aes

library(ggplot2)

ggplot(transform(bike2, year = substr(dteday, 1, 4)), 
       aes(x=dteday, y=cnt, group = 1, color = year))+
  geom_line(size = 1.2) + 
  labs(title = "Bike Rentals Per Month",
       x = "Month/Year",
       y = "Count") + 
  #theme_solarized() +
  theme(axis.text.x=element_text(angle=45, hjust=1)) 

如果你想给年份赋予某种特定的颜色,你可以通过 + scale_color_manual(values = c('green', 'yellow')) 来实现。