Сложенные однорядные тепловые карты в R

У меня есть 10 матриц, каждая из которых представляет собственные значения матриц корреляции вейвлет-коэффициентов ряда временных рядов.

Я хотел бы создать тепловую карту моих данных, чтобы увидеть, есть ли какие-либо перекрывающиеся важные события в разных масштабах.

До сих пор я собрал следующее изображение, используя графический пакет, как описано здесь от @Josliber.

Я все еще разбираюсь с R, так что извините за неприятный код, но пока он работает для меня. Мне еще предстоит возиться с метками и форматированием, но это быстрое и грязное представление.

Быстро и грязно

#plotting the eigenvalues for each of the wavelet coefficient scales
w1mat <- matrix(w1eigen[1,])
w2mat <- matrix(w2eigen[1,])
w3mat <- matrix(w3eigen[1,])
w4mat <- matrix(w4eigen[1,])
w5mat <- matrix(w5eigen[1,])
w6mat <- matrix(w6eigen[1,])
w7mat <- matrix(w7eigen[1,])
w8mat <- matrix(w8eigen[1,])
w9mat <- matrix(w9eigen[1,])
w10mat <- matrix(w10eigen[1,])

#plots the eigenvalues for each of the scales 
par(mfrow=c(10,1))
imageW1 <- image(w1mat)
imageW2 <- image(w2mat)
imageW3 <- image(w3mat)
imageW4 <- image(w4mat)
imageW5 <- image(w5mat)
imageW6 <- image(w6mat)
imageW7 <- image(w7mat)
imageW8 <- image(w8mat)
imageW9 <- image(w9mat)
imageW10 <- image(w10mat)

Как вы можете видеть, я использовал функцию изображения в графическом пакете, чтобы создать это, и я уверен, что смогу добиться того же в ggplot с большим контролем.

В конечном счете, я хочу создать график, подобный приведенному ниже, где есть общая ось Y, и они сидят прямо друг над другом без пробелов.

Что я хотел бы знать, так это то, является ли использование функции сложенного изображения в графике лучшим подходом или есть лучший способ визуализации данных в альтернативном пакете?

Желаемый результат


person TheGoat    schedule 14.06.2017    source источник
comment
Просто используйте heatmap. Попробуйте heatmap(matrix(rnorm(1000),nrow=10)) например. Вы можете rbind ваши матрицы вместе. Быстрый и грязный способ: rbind(matrix(w1eigen[1,]), matrix(w2eigen[1,], matrix[w3eigen[1,], ...) . ... вот где я обленился.   -  person CPak    schedule 15.06.2017
comment
Используйте do.call для таких вещей.   -  person IRTFM    schedule 15.06.2017