如何在R中的每日时间序列数据图中包含月份

时间:2018-02-02 21:37:33

标签: r date plot time-series

我有一个R每日波动率的图表

enter image description here

日期范围从“2009-04-01”到“2010-07-01”,并以R格式保存。 当我绘制它时,

  

情节(d,vol1,type =“l”)

我只在x轴上获得年份'标签'。但是,拥有月份“标签”也会有所帮助。任何人都可以帮我这个吗?

2 个答案:

答案 0 :(得分:1)

您可以使用tidyverse工具轻松完成此操作,尤其是scale_x_date选项date_breaks。如果您想进行其他自定义,您还可以在此处查看其他答案或网络资源。


library(tidyverse)
library(lubridate)
df = tibble(
  days = seq.Date(from = ymd("2009-04-01"), to = ymd("2010-07-01"), by = "day"),
  value = rnorm(457)
  )

ggplot(data = df) +
  geom_line(aes(x = days, y = value)) +
  scale_x_date(date_breaks = "1 month", date_labels = "%m-%y")

答案 1 :(得分:0)

使用axis命令手动绘制。

示例1

# test data
d <- seq(as.Date("2009-04-01"), as.Date("2010-07-01"), "day")
v <- seq_along(d)

plot(v ~ d, xaxt = "n")

# draw X axis
months <- seq(min(d), max(d), "month")
axis(1, months, format(months, "%Y\n%b"))

,并提供:

screenshot

示例2

# test data
d <- seq(as.Date("2009-04-01"), as.Date("2010-07-01"), "day")
v <- seq_along(d)

plot(v ~ d, xaxt = "n")

# draw X axis
months <- seq(min(d), max(d), "month")
lab <- format(months, "%b")
lab[lab == "Jan"] <- format(months, "%Y")[lab == "Jan"]
axis(1, months, lab)

,并提供:

screenshot