微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决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

解决方法

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。