Построение нескольких графиков из списка - PullRequest
1 голос
/ 20 июня 2019

У меня есть данные временного ряда с 1990 по 1994 год из 5 переменных в 15 листах.Я прочитал все эти данные в список.Мне нужно сделать график временных рядов всех 5 переменных для 15 компаний в нескольких графиках.Как это может быть сделано?Я имею в виду, что мне в основном нужно 5 цифр, каждая из которых содержит график временных рядов 15 компаний соответствующих переменных.

1 Ответ

1 голос
/ 20 июня 2019

С пакетом ggplot2 это можно сделать следующим образом. Я предполагаю, что у вас есть список из 15 фреймов данных с именем df_list.

Сначала rbind их вместе с названием компании в качестве нового столбца. Названия компаний в этом случае с поддельными данными хранятся как df's names.

all_df <- lapply(names(df_list), function(x){
  DF <- df_list[[x]]
  DF$Company <- x
  DF
})
all_df <- do.call(rbind, all_df)

Затем измените форму с широкого на длинный.

long_df <- reshape2::melt(all_df, id.vars = c("Company", "Date"))

Теперь постройте их. Графики могут быть настроены по желанию, на нем много постов.

library(ggplot2)

ggplot(long_df, aes(x = Date, y = value, colour = Company)) +
  geom_line() +
  facet_wrap(~ variable)

enter image description here

Код создания данных.

set.seed(1234)

Dates <- seq(as.Date("1990-01-01"), as.Date("1994-12-31"), by = "month")
n <- length(Dates)
df_list <- lapply(1:15, function(i){
  tmp <- matrix(rnorm(5*n), ncol = 5)
  tmp <- apply(tmp, 2, cumsum)
  colnames(tmp) <- paste0("Var", 1:5)
  tmp <- as.data.frame(tmp)
  tmp$Date <- Dates
  tmp
})
names(df_list) <- paste("Company", seq_along(df_list), sep = ".")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...