Построение 12-месячных временных рядов данных: встроенная функция graphics :: plot (), которую дает, не может отображать более 10 рядов как «множественные». - PullRequest
2 голосов
/ 21 июня 2019

Я хочу построить 12 различных месячных временных рядов данных за диапазон 1984–2018 годов.Я хочу получить график, подобный следующему, но graphics::plot() всегда выдает ошибку - в чем решение?

Код:

datats <- ts(data, start=c(1984,1), end=c(2018,12), frequency=12)
plot(datats, ylab="PPT_MM")

Ошибка:

Error in plotts(x = x, y = y, plot.type = plot.type, xy.labels = xy.labels,  : 
cannot plot more than 10 series as "multiple"

Сюжет: Сюжет

Мои данные:

    data<-structure(list(Year = 1984:2018, X1 = c(24.2, 5.3, 59, 31.7, 
93.7, 133.2, 42.8, 29.3, 12, 256.5, 0, 28.5, 22.4, 3.8, 295.4, 
16.1, 7, 244.8, 79.5, 31.6, 45.1, 12.2, 14, 61.4, 117.4, 74.2, 
51, 9.1, 0, 50.4, 0, 13.3, 45.1, 20.7, 25.7), X2 = c(0, 110.5, 
0, 0, 13.8, 4, 23.2, 13.3, 6.1, 84.9, 103.5, 83.3, 56.5, 0, 219.4, 
2.2, 0, 0, 7.5, 17.2, 47.9, 19.2, 20.5, 44.8, 7.3, 26.3, 64.1, 
71.8, 4.6, 0, 80, 16.8, 65.1, 26.2, 2.8), X3 = c(3.4, 78.7, 59.4, 
23.3, 109.3, 51.1, 217.3, 43.5, 5, 60.9, 75.3, 150.1, 73.7, 46, 
118, 121, 52.5, 113, 98.9, 115.2, 83.1, 101.7, 30, 20.5, 73, 
3.2, 241.9, 209.8, 1.6, 113.1, 207.4, 39, 27.4, 15.2, 91.6), 
    X4 = c(51.4, 278.3, 192.4, 56.7, 203.7, 193.7, 251.5, 80.5, 
    192.9, 20.8, 82.4, 49.6, 96.4, 208.5, 123, 113.8, 68.5, 88.9, 
    120.4, 153.2, 121.5, 165.1, 117, 143.9, 129.3, 145.4, 107.9, 
    1, 286.4, 209.3, 44, 55.3, 82.4, 40.3, 83.4), X5 = c(0.6, 
    84.6, 72.7, 39.4, 23.6, 37, 64.9, 57.5, 32, 13.7, 29.8, 33.1, 
    42.8, 21.2, 162.6, 9.8, 15.6, 15.3, 126.6, 133.8, 59.8, 100.5, 
    70, 41.7, 4.5, 29.7, 120.9, 37.7, 112.5, 37.7, 14.8, 34.3, 
    23.2, 35.6, 22.7), X6 = c(0, 0, 5.7, 61.9, 10.1, 0, 5.1, 
    3.1, 1.1, 6.3, 8.2, 0.9, 19.3, 0.5, 38.7, 5, 6.2, 4.3, 1.4, 
    0, 0.7, 0.9, 2, 2.7, 0.3, 5.2, 1.7, 0, 36.9, 0.3, 9.7, 26.3, 
    5.7, 2.2, 2.7), X7 = c(7, 1.4, 0.4, 3.6, 0, 3.8, 0, 1.4, 
    6.8, 0.5, 3.3, 4.1, 2.2, 1.2, 15.4, 2.4, 0.3, 4.3, 0, 0, 
    0, 1, 1.9, 26.8, 1.3, 0, 2.7, 3.4, 0, 2.7, 13, 6.1, 4.8, 
    5, 3.5), X8 = c(6.4, 1.9, 0.3, 11.6, 3, 14.6, 3.4, 8.9, 0, 
    3.1, 9.9, 3.2, 2.2, 4.3, 2.9, 4.9, 1.8, 2.5, 0.2, 26.3, 0, 
    3.5, 4.7, 5.2, 0.2, 0, 1.3, 0.7, 11.8, 0.6, 32.4, 4.1, 3.8, 
    7.2, 2.8), X9 = c(15.7, 0.2, 0, 0, 15.4, 0.3, 0, 3.4, 0.7, 
    0.6, 4.3, 5.1, 0.7, 0, 1.8, 0, 2.3, 0, 8.8, 21.5, 1, 1, 3, 
    4.3, 9.1, 1.2, 0.6, 5.9, 0, 2.5, 13.6, 3, 3.4, 6.8, 2.22), 
    X10 = c(154.4, 56, 2.6, 0.3, 33.5, 96.9, 48.8, 46.5, 31, 
    26, 110.9, 103.7, 0, 83.2, 3.3, 20.6, 41, 7.3, 21.2, 31.8, 
    47.6, 10.2, 14.5, 18.3, 23.9, 41.3, 32.1, 50.2, 22.3, 64, 
    25.4, 17.2, 7.4, 23.6, 87.6), X11 = c(211.2, 75.1, 180.8, 
    93.5, 120.8, 106, 208.5, 119.9, 141.2, 150.8, 406.3, 46, 
    187.7, 270.3, 113.9, 257, 189.8, 169, 144.3, 121.1, 161.3, 
    125, 117.2, 127.9, 122.8, 34.4, 116, 180.3, 119.7, 1024.7, 
    104.8, 104.5, 51.5, 38.2, 206.8), X12 = c(341.4, 121, 127.2, 
    12, 180.2, 129.5, 110.2, 156.7, 186.2, 67.3, 143.7, 87.6, 
    1.5, 177.3, 15.8, 108.6, 98.8, 43.6, 182.4, 24.1, 89.5, 100.5, 
    95, 82.4, 44.9, 127.1, 59.6, 28.2, 73.2, 919.5, 0, 122.9, 
    51.4, 17.9, 249.6)), class = "data.frame", row.names = c(NA, 
-35L))

1 Ответ

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

Документация по функциям (https://rdrr.io/r/stats/plot.ts.html) дает нам несколько советов ...

По-видимому, невозможно построить более 10 диаграмм на одной панели. Попробуйте, например:

datats <- ts(data[,-1], start=c(1984,1), end=c(2018,12), frequency=12)
plot(datats[,c(1:10)], ylab="PPT_MM")

enter image description here

Это работает! Тогда использование этого метода выглядит как предел.

Вы можете использовать альтернативно некоторый ggplot:

library(reshape2)
library(dplyr)
library(ggplot2)

melt(data, id.vars = "Year") %>%
  ggplot(aes(x = Year, y = value , group = 1)) +
  geom_line() + geom_point() +
  facet_wrap(. ~  variable)

enter image description here

...