我想生成一个比较不同年份获得的数据的图。目标是在x轴上 12个月,并使用每年的值绘制不同的行。
我正在使用的数据框是下一个:
Month Marg Fiscal.Year
1 2009-04-01 20904494 2009
2 2009-05-01 43301981 2009
3 2009-06-01 14004552 2009
...
38 2012-05-01 58343271 2012
39 2012-06-01 38723765 2012
40 2012-07-01 77246753 2012
我的情节代码是:
g <- ggplot(data = data, stat="identity", aes(x = Month, y = Marg)) +
geom_line() +
geom_point() +
geom_smooth(method = "loess") +
scale_x_date(breaks = "1 month", labels = date_format("%b"));
但是从2009年到2012年的 x轴48个月,并且一行显示每个值(每个值不是每年的不同行)几个月)。
你能帮我解决一下这个问题吗? (我是R的新人,将不胜感激任何帮助。)
提前感谢您的回答!
答案 0 :(得分:6)
library(ggplot2)
# Sample data
data <- read.table(text = "Month Marg Fiscal.Year
2009-01-01 20904494 2009
2009-02-01 30904494 2009
2009-03-01 40904494 2009
2009-04-01 30904494 2009
2009-05-01 43301981 2009
2009-06-01 14004552 2009
2009-07-01 24004552 2009
2009-08-01 34004552 2009
2009-09-01 44004552 2009
2009-10-01 54004552 2009
2009-11-01 64004552 2009
2009-12-01 44004552 2009
2012-02-01 58343271 2012
2012-03-01 68343271 2012
2012-04-01 58343271 2012
2012-05-01 58343271 2012
2012-06-01 38723765 2012
2012-07-01 77246753 2012",
header=TRUE, sep="", nrows=18)
data$MonthN <- as.numeric(format(as.Date(data$Month),"%m")) # Month's number
data$Month <- months(as.Date(data$Month), abbreviate=TRUE) # Month's abbr.
g <- ggplot(data = data, aes(x = MonthN, y = Marg, group = Fiscal.Year, colour=Fiscal.Year)) +
geom_line() +
geom_point() +
scale_x_discrete(breaks = data$MonthN, labels = data$Month)
g