Я хотел бы построить каждую строку этой матрицы на отдельном графике в графическом окне.Как создать более приятный сюжет для моих категорических временных рядов данных в матрице?
mat <-
structure(c("g", "b", "c", "e", "g", "b", "g", "g", "e", "e",
"a", "b", "b", "e", "c", "f", "d", "f", "g", "c", "f", "g", "b",
"e", "a", "b", "c", "a", "c", "g", "c", "d", "e", "d", "b", "f",
"e", "f", "a", "f", "c", "f", "e", "f", "d", "d", "f", "a", "d",
"f"), .Dim = c(5L, 10L))
# [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
#[1,] "g" "b" "a" "f" "f" "b" "c" "f" "c" "d"
#[2,] "b" "g" "b" "d" "g" "c" "d" "e" "f" "f"
#[3,] "c" "g" "b" "f" "b" "a" "e" "f" "e" "a"
#[4,] "e" "e" "e" "g" "e" "c" "d" "a" "f" "d"
#[5,] "g" "e" "c" "c" "a" "g" "b" "f" "d" "f"
Из ответа на мой yesterday's post, мне нужно преобразовать эту матрицу числового первым.
v <- as.character(mat)
lev <- sort(unique(v)) ## sorted unique labels
# [1] "a" "b" "c" "d" "e" "f" "g"
mat_int <- matrix(match(v, lev), nrow = nrow(mat))
# [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
#[1,] 7 2 1 6 6 2 3 6 3 4
#[2,] 2 7 2 4 7 3 4 5 6 6
#[3,] 3 7 2 6 2 1 5 6 5 1
#[4,] 5 5 5 7 5 3 4 1 6 4
#[5,] 7 5 3 3 1 7 2 6 4 6
Теперь я использую следующий код для генерации своего графика.
par(mfrow=c(5,1))
matplot(t(mat_int)[, c(1)], yaxt = "n", type = "l", xlab = "time", ylab = "category")
axis(2, seq_along(lev), labels = lev)
matplot(t(mat_int)[, c(2)], yaxt = "n", type = "l", xlab = "time", ylab = "category")
axis(2, seq_along(lev), labels = lev)
matplot(t(mat_int)[, c(3)], yaxt = "n", type = "l", xlab = "time", ylab = "category")
axis(2, seq_along(lev), labels = lev)
matplot(t(mat_int)[, c(4)], yaxt = "n", type = "l", xlab = "time", ylab = "category")
axis(2, seq_along(lev), labels = lev)
matplot(t(mat_int)[, c(5)], yaxt = "n", type = "l", xlab = "time", ylab = "category")
axis(2, seq_along(lev), labels = lev)
Но у меня есть несколько вопросов:
- Метка на оси у каждого участка из пяти содержит лишь частичные результаты (скажем, второй участок отсутствует «а «). Есть ли способ, которым мы можем перечислить все категориальные переменные по оси y для всех пяти графиков? (То есть каждый сюжет имеет метки: a, b, c, d, e, f, g.
- Прямо сейчас я должен создать этот график на большой странице, чтобы отобразить все метки оси Y ясно. есть ли способ, чтобы организовать свои участки более близко друг к другу, чтобы сэкономить место, так, чтобы они могли поместиться в меньшей странице?
Спасибо.
я вам. Я попытался использовать «plot» вместо «matplot», но он все еще не работал. Поскольку я хотел перечислить все категориальные переменные по оси y. –
plot (mat_int [1,], yaxt = "n", type = "l", xlab = "time", ylab = "category") axis (2, seq_along (lev), labels = lev) –
Но если вы смотрите на второй сюжет, даже если вы рисуете второй только на большой странице, вы все равно обнаружите, что категорический ярлык «a» отсутствует. –