R ggplot2-在同一图中绘制年份变量一个在另一个上

时间:2020-10-11 18:04:42

标签: r ggplot2

我如何在ggplot2中将每年绘制为单独的一行,我尝试了以下代码,但它似乎连续绘制为单个图。

library(ggplot2)

# Dummy data
data <- data.frame(
  Date = c(as.Date("2017-01-14") - 0:13,as.Date("2016-01-14") - 0:13),
  value = runif(28) 
)
#data$Date <- strptime(data$Date, "%Y-%m-%d" )
data$Year <- as.character(year(data$Date))
data$Year <- factor(data$Year)

ggplot(data) + geom_line(aes(x = Date, y = value, group=Year, color=Year)) +
  scale_x_date(date_breaks = "1 day", date_labels = "%d-%m-%y") +
  theme(axis.text.x = element_text(angle = 90))

enter image description here 但是我希望每年在同一块图中成为单独的图形。

类似下面的

enter image description here

1 个答案:

答案 0 :(得分:3)

尝试使用此方法格式化日期中的日期和月份。由于日期变量中的年份不同,因此情节混乱。设置格式可以为您提供帮助。这里的代码:

library(ggplot2)
library(lubridate)
# Dummy data
data <- data.frame(
  Date = c(as.Date("2017-01-14") - 0:13,as.Date("2016-01-14") - 0:13),
  value = runif(28) 
)
data$Year <- as.character(year(data$Date))
data$Year <- factor(data$Year)
#Format month
data$MonthDay <- format(data$Date,'%b-%d')
#Plot
ggplot(data) + geom_line(aes(x = MonthDay, y = value, group=Year, color=Year)) +
  theme_bw()+
  theme(axis.text.x = element_text(angle = 90))

输出:

enter image description here