r - 将 "months"作为 x 轴标签添加到图中

标签 r ggplot2 lubridate

我正在尝试使用 ggplot 在 R 中绘制附加数据。

link of the data

这是我的脚本:

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 以月为单位(一月到十二月)。但数据是闰年的。我尝试了这个命令,但出错了。

dat$date <- seq(as.Date("2012/1/1"), as.Date("2012/12/31"), "month")

错误:

Error in $<-.data.frame(*tmp*, "date", value = c(15340, 15371, 15400, : replacement has 12 rows, data has 366

谁能推荐一个简单的方法来做到这一点。

最佳答案

这会让你约会:

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")

关于r - 将 "months"作为 x 轴标签添加到图中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40883227/

相关文章:

r - 如何使用日期和时间函数准备每天 4 次(即每 6 小时)的序列

r - 我怎样才能避免 travis-ci "SSL errors"?

r - ggplot stat_smooth : change look of multiple bands

r - 使用ggplotly时,将鼠标悬停在plotly中的标签上

r - 为什么 round_date() 对某些单位返回错误?

r - 我将 R 更新到 3.5.0 版后,Miktex 没有成功

R - 替换向量中的第一个 NA

r - 在 geom_point 中为 ggplot2 中的负值和正值设置不同的颜色

R:使用lubridate计算年龄

r - 检查一个时间间隔内的任何日期是否在另一个时间间隔内的任何日期内