【问题标题】:Adding "months" as x-axis labels to a plot将“月”作为 x 轴标签添加到绘图
【发布时间】:2016-11-30 08:09:00
【问题描述】:

我正在尝试使用 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 以月为单位(1 月到 12 月)。但数据是闰年。我尝试了这个命令,但报错了。

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

错误:

$&lt;-.data.frame(*tmp*, "date", value = c(15340, 15371, 15400,:替换有12行,数据有366

谁能提出一个简单的方法来做到这一点。

【问题讨论】:

    标签: r ggplot2 lubridate


    【解决方案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")
    

    【讨论】:

      【解决方案2】:

      也许这样可以:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-11-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-05-23
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多