我试图使用ggplot在R中绘制附加数据。
这是我的剧本:
library(ggplot2)
dat<-read.csv("dat.csv",header=TRUE,sep=",")
dat<-data.frame(dat)
dat$min<-dat$zam-sd(dat$zam)
dat$max<-dat$zam+sd(dat$zam)
ggplot(dat,aes(dd,zam))
+geom_ribbon(aes(ymin=min,ymax=max),fill="skyblue")
+geom_line(color="steelblue4",lwd=1)
+theme(panel.background=element_rect(fill="white"), axis.line=element_line(colour="black"), panel.border = element_rect(colour = "black", fill=NA, size=5))
问题:
我希望xaxis可以在几个月内(1月到12月)。但数据是闰年。我试过这个命令时出错了。
dat$date <- seq(as.Date("2012/1/1"), as.Date("2012/12/31"), "month")
错误:
$<-.data.frame
中的错误(*tmp*
,&#34;日期&#34;,值= c(15340,15371, 15400,:替换有12行,数据有366
任何人都可以建议一个简单的方法来做到这一点。
答案 0 :(得分:1)
也许会这样做:
dat$date <- as.Date(dat$dd,origin="2012-01-01")
ggplot(dat,aes(date,zam))+
geom_ribbon(aes(ymin=min,ymax=max),fill="skyblue")+
geom_line(color="steelblue4",lwd=1)+
theme(panel.background=element_rect(fill="white"),
axis.line=element_line(colour="black"))+
scale_x_date(date_labels = "%b",date_breaks = "1 month")
答案 1 :(得分:1)
这会让你知道日期:
dat$date <- as.Date(strptime(paste("2012", dat$dd), format="%Y %j"))
然后ggplot像:
ggplot(dat, aes(date, zam) +
geom_ribbon(aes(ymin = min, ymax = max),fill = "skyblue") +
geom_line(color = "steelblue4", lwd = 1) +
scale_x_date(date_labels = "%B", date_breaks = "1 month")