我已经使用ggplot和lubridate创建了一个时序图,描绘了两年期间的疾病事件。我似乎无法找到一种方法来获取X轴标签来描述年份和季度。
library(tidyverse)
Event.number <- c(1:30)
Event.date <- sample(seq(as.Date('2010/01/01'), as.Date('2012/12/31'), by="day"), 30)
Disease <- c("A", "A", "B", "A", "B","A", "A", "B", "A", "B","A", "A", "B", "A", "B","A", "A", "B", "A", "B" ,"A", "A", "B", "A", "B","A", "A", "B", "A", "B")
data.frame(Event.number, Event.date, Disease) %>%
mutate(Year.Quarter = quarter(Event.date, with_year = TRUE)) %>%
select(Event.number, Year.Quarter, Disease) %>%
group_by(Year.Quarter, Disease) %>%
count(name = "Cases") %>%
ggplot(aes(Year.Quarter, Cases, colour = Disease))+
geom_point()+
geom_line()+
theme_minimal()
任何帮助或建议,我们将不胜感激。
根据问题下的注释,如下所示更改mutate
以使用yearqtr
类,并将scale_x_yearqtr()
添加到ggplot
命令。还要注意,group_by
/ count
语句可以简化为count
语句。有关标签的进一步自定义,请参见format=
处的?scale_x_yearqtr
自变量。
library(zoo)
DF <- data.frame(Event.number, Event.date, Disease) %>%
mutate(Year.Quarter = as.yearqtr(Event.date)) %>%
select(Event.number, Year.Quarter, Disease) %>%
count(Year.Quarter, Disease, name = "Cases")
ggplot(DF, aes(Year.Quarter, Cases, colour = Disease)) +
geom_point() +
geom_line() +
theme_minimal() +
scale_x_yearqtr(n = 99)