Отображение данных временных рядов, когда столбец даты не существует - PullRequest
0 голосов
/ 27 мая 2019

У меня есть следующие данные:

set.seed(12)
df <- rnorm(1260, 0.06, 0.2)

Это ежедневная доходность за 5 лет (с 1 годом = 252 рабочих дня), и я хотел бы нарисовать график с месяцамина оси х.По сути, у меня была бы последовательность Jan: Dec, повторенная пять раз по оси X, с 21 днем, равным одному месяцу.

Я сделал следующее:

  1. Создатьстолбец с месяцами jan-dec повторяется 5 раз
date <- c("Jan", "Feb", "Mär", "Apr", "Mai", "Jun", 
          "Jul", "Aug", "Sep", "Okt", "Nov", "Dez")
date <- rep(date, 5)
График рисования
df %>%
       ggplot(aes(x = date, y = return)) +
       geom_line() +
       labs(title = "Stock return Chart", y = "return", x = "date")

К сожалению, я получаю следующую ошибку:

 Error: Aesthetics must be either length 1 or the same as the data (1260): x 

Ответы [ 2 ]

2 голосов
/ 27 мая 2019
library(tidyverse)

df %>%
    as.data.frame() %>%
    rename(price = 1) %>% 
    mutate(rnames = rownames(.)) %>% 
    ggplot(aes(x = as.numeric(rnames), y = price, 
                group = rep(1:5, times=1, each=252))) +
      geom_line() +
      labs(title = "Stock Price Chart", y = "Price", x = "date") +
      scale_x_continuous(breaks = seq(1, 1260, by = 21), labels = date)

![](https://i.imgur.com/jR6C8rI.png)

Создано в 2019-05-27 пакетом Представления (v0.3.0)

0 голосов
/ 27 мая 2019

Попробуйте это:

price <- rnorm(1260, 0.06, 0.2)

date.base <- c("Jan", "Feb", "Mär", "Apr", "Mai", "Jun", 
          "Jul", "Aug", "Sep", "Okt", "Nov", "Dez")
date <- rep(date.base, 5)

data.frame(date=factor(date, ordered=TRUE, levels=date.base), price=price) %>%
  ggplot(aes(x = date, y = price)) +
  geom_line() +
  labs(title = "Stock Price Chart", y = "Price", x = "date")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...