Как построить несколько графиков временных рядов в сетке, где каждый график имеет две оси Y? - PullRequest
0 голосов
/ 29 августа 2018

Мне нужно построить несколько диаграмм временных рядов на одной странице, каждый на отдельной панели в сетке 3х2 или аналогичной. В последнем случае у меня будет 6 диаграмм на странице в 3 строки и 2 столбца. Мне нужно использовать R, любая популярная библиотека графиков в порядке.

Далее, каждый график будет иметь несколько временных рядов. Все временные ряды, кроме одного, будут масштабированы до оси y с левой стороны, тогда как один временной ряд будет в другом масштабе с метками y с правой стороны. Это похоже на команду plotyy в MATLAB.

Мне нужно будет немного настроить такие вещи, как цвета и типы линий. Какое решение в R для такого рода диаграммы?

1 Ответ

0 голосов
/ 29 августа 2018

С ggplot2 мы можем использовать facet_wrap для определения граней (панелей) и sec_axis для определения вторичной оси.

library(ggplot2)

ggplot(dd, aes(x, y, col = id)) + 
  geom_line() + 
  facet_wrap(~ panel) +
  scale_y_continuous(sec.axis = sec_axis(~ . / 2))

Примечание

Мы использовали dd, определенный ниже, как ввод выше. id определяет серию, а панель определяет панель, в которую должен быть помещен каждый id.

set.seed(123)
dd <- data.frame(x = 1:11, y = rnorm(44), 
  id =  gl(4, 11, labels = paste0("ser", 1:4)), 
  panel = gl(2, 22, labels = paste0("panel", 1:2)))
...