【问题标题】:Plot data against time根据时间绘制数据
【发布时间】:2017-06-28 15:22:06
【问题描述】:

我正在尝试针对向量 b(我的时间向量)绘制向量 a,其中包含股票近 15 年的回报(总共约 5000 个值)。

a = (0.1, 0.2, 0.1, 0.15, 0.5,...,0.2)
b = ("2001-07-23",...,"2015-12-31")

我将两个向量都转换为因子,显然两者的长度相同。

【问题讨论】:

  • 为什么将它们转化为因子?
  • 我首先必须从一个大数据框中提取两个向量。然后我将日期值从 YYYYMMDD 转换为“YYYY-MM-DD”,没有转换为因子它没有工作。
  • plot(b, a) 不起作用吗?
  • 嗯,它确实有效,只是 y 轴有点乱。 a 值介于 0 和 1 之间,y 轴从 0 到 5。这就是我可以尝试解决的问题。

标签: r date vector plot


【解决方案1】:

你可以这样做:

  • lubridate 解析您的日期
  • ggplot2 构建图表
  • dplyr 语法漂亮

代码如下:

a <- c(0.1, 0.2, 0.1, 0.15)
b <- c("2001-07-23", "2001-07-24", "2001-07-25", "2001-07-26")

library(dplyr)
library(ggplot2)
library(lubridate)

df <- data.frame(dates = as_date(b),
                 metric = a)
df %>% 
  ggplot(aes(x=dates, y=metric)) +
  geom_col()

【讨论】:

  • 真的很好用,问题是,如何更改 y 轴的最小值/最大值?在我的实际数据上使用了代码,y轴有点乱,我想缩小它
  • @mesjoga1311 在geom_col 之后添加此代码以设置y 轴最小值/最大值:+ scale_y_continuous(limits = c(-1, 10))。 (在本例中,最小值为 -1,最大值为 10)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-12-11
  • 2020-07-28
  • 2018-11-17
  • 1970-01-01
  • 2014-10-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多