#r #layout #sequence #par #traminer
Вопрос:
##PACKAGES
library(tidyverse,quietly=TRUE)
library(TraMineR)
library(WeightedCluster, quietly = TRUE)
library(viridis)
library(seqhandbook, quietly = TRUE)
Вот представление моего набора данных:
mydata<-structure(list(T1 = structure(c("ANN", "ANN", "ANN", "ANN", "ANN",
"ANN", "ANN", "ANN", "ANN", "ANN", "ANN", "ANN", "ANN", "ANN",
"ANN", "ANN", "ANN", "ANN", "ANN", "ANN", "ANN", "ANN", "ANN",
"ANN", "ANN", "ANN", "ANN", "ANN", "ANN", "ANN", "ANN", "ANN",
"ANN", "ANN", "ANN", "ANN", "ANN", "ANN", "ANN", "ANN", "ANN",
"ANN", "ANN", "ANN", "ANN", "ANN", "ANN", "ANN", "ANN", "ANN"
), label = "Type chir. bariat."),
T2 = structure(c("ANN", "ANN",
"ANN", "ANN", "ANN", "ANN", "ABL", "ANN", "ANN", "ANN", "ANN",
"ANN", "ANN", "ANN", "ANN", "ANN", "ANN", "ABL", "ANN", "ANN",
"ANN", "ANN", "ANN", "ANN", "ANN", "ANN", "ANN", "ANN", "ANN",
"ANN", "ANN", "ANN", "ANN", "ANN", "ANN", "ANN", "ANN", "ANN",
"ANN", "ANN", "ANN", "ANN", "ANN", "ANN", "ANN", "ANN", "ANN",
"ANN", "ANN", "ANN"), label = "Type chir. bariat."),
T3 = structure(c("ANN", "ANN", "ANN", "ANN", "ANN", "ANN", "ABL", "ANN", "ANN", "ANN",
"ANN", "ANN", "ANN", "ANN", "ANN", "ANN", "ANN", "ABL", "ANN",
"ANN", "ANN", "ANN", "ANN", "ANN", "ANN", "ANN", "ANN", "ANN",
"ANN", "ANN", "ANN", "ANN", "ANN", "ANN", "ANN", "ANN", "ANN",
"ANN", "ANN", "ANN", "ANN", "ANN", "ANN", "ANN", "ANN", "ANN",
"ANN", "ANN", "ANN", "ANN"), label = "Type chir. bariat."),
T4 = structure(c("ANN",
"ANN", "ANN", "ANN", "ANN", "ANN", "ABL", "ANN", "ANN", "ANN",
"ANN", "ANN", "ANN", "ANN", "ANN", "ANN", "ANN", "ABL", "ANN",
"ANN", "ANN", "ANN", "ANN", "ABL", "ANN", "ANN", "ANN", "ANN",
"ANN", "ANN", "ANN", "ANN", "ANN", "ANN", "ANN", "ANN", "ANN",
"ANN", "ANN", "ANN", "ANN", "ANN", "ANN", "ANN", "ANN", "ANN",
"ANN", "ANN", "ANN", "ANN"), label = "Type chir. bariat."),
T5 = structure(c("ANN",
"ANN", "ANN", "ANN", "ANN", "ANN", "ABL", "ANN", "ANN", "ANN",
"ANN", "ANN", "ANN", "ANN", "ANN", "ANN", "ANN", "ABL", "ANN",
"ANN", "ANN", "ANN", "ANN", "ABL", "ANN", "ANN", "ANN", "ANN",
"ANN", "ANN", "ANN", "ANN", "ANN", "ANN", "ANN", "ANN", "ANN",
"ANN", "ANN", "ANN", "ANN", "ANN", "ANN", "ANN", "ANN", "ANN",
"ANN", "ANN", "ANN", "ANN"), label = "Type chir. bariat."),
T6 = structure(c("ANN",
"ANN", "ANN", "ANN", "ANN", "ANN", "ABL", "ANN", "ANN", "ANN",
"ANN", "ANN", "ANN", "ANN", "ANN", "ANN", "ANN", "ABL", "ANN",
"ANN", "ANN", "ANN", "ANN", "SLE", "ANN", "ANN", "ANN", "ANN",
"ANN", "ANN", "ANN", "ANN", "ANN", "ANN", "ANN", "ANN", "ANN",
"ANN", "ANN", "ANN", "ANN", "ANN", "ANN", "ANN", "ANN", "ANN",
"ANN", "ANN", "ANN", "ANN"), label = "Type chir. bariat."),
T7 = structure(c("ANN",
"ANN", "ANN", "ANN", "ANN", "ANN", "ABL", "ANN", "ANN", "ANN",
"ANN", "ANN", "ANN", "ANN", "ANN", "ANN", "ANN", "ABL", "ANN",
"ANN", "ANN", "ANN", "ANN", "SLE", "ANN", "ANN", "ANN", "ANN",
"ANN", "ANN", "ANN", "ANN", "ANN", "ANN", "ANN", "ANN", "ANN",
"ANN", "ANN", "ANN", "ANN", "ANN", "ANN", "ANN", "ANN", "ANN",
"ANN", "ANN", "ANN", "ABL"), label = "Type chir. bariat."),
T8 = structure(c("ANN",
"ANN", "ANN", "ANN", "ANN", "ANN", "ABL", "ANN", "ANN", "ANN",
"ANN", "ANN", "ANN", "ANN", "ANN", "ANN", "ANN", "ABL", "ANN",
"ANN", "ANN", "ANN", "ANN", "SLE", "ANN", "ANN", "ANN", "ANN",
"ANN", "ANN", "ANN", "ANN", "ANN", "ANN", "ANN", "ANN", "ANN",
"ANN", "ANN", "ANN", "ANN", "ANN", "ANN", "ANN", "ANN", "ANN",
"ANN", "ANN", "ANN", "ABL"), label = "Type chir. bariat."),
T9 = structure(c("ANN",
"ANN", "ANN", "ANN", "ANN", "ANN", "ABL", "ANN", "ANN", "ANN",
"ANN", "ANN", "ANN", "ANN", "ANN", "ANN", "ANN", "ABL", "ANN",
"ANN", "ANN", "ANN", "ANN", "SLE", "ANN", "ANN", "ANN", "ANN",
"ANN", "ANN", "ANN", "ANN", "ANN", "ANN", "ANN", "ANN", "ANN",
"ANN", "ANN", "ANN", "ANN", "ANN", "ANN", "ANN", "ANN", "ANN",
"ANN", "ANN", "ANN", "ABL"), label = "Type chir. bariat."),
T10 = structure(c("ANN",
"ANN", "ANN", "ANN", "ANN", "ANN", "ABL", "ANN", "ANN", "ANN",
"ANN", "ANN", "ANN", "ANN", "ANN", "ANN", "ANN", "ABL", "ANN",
"ANN", "ANN", "ANN", "ANN", "SLE", "ANN", "ANN", "ANN", "ANN",
"ANN", "ANN", "ANN", "ANN", "ANN", "ANN", "ANN", "ANN", "ANN",
"ANN", "ANN", "ANN", "ANN", "ANN", "ANN", "ANN", "ANN", "ANN",
"ANN", "ANN", "ANN", "ABL"), label = "Type chir. bariat."),
T11 = structure(c("ANN",
"ANN", "ANN", "ANN", "ANN", "ANN", "ABL", "ANN", "ANN", "ANN",
"ANN", "ANN", "ANN", "ANN", "ANN", "ANN", "ANN", "ABL", "ANN",
"ANN", "ANN", "ANN", "ANN", "SLE", "ANN", "ANN", "ANN", "ABL",
"ANN", "ANN", "ANN", "ANN", "ANN", "ANN", "ANN", "ANN", "ANN",
"ANN", "ANN", "ANN", "ANN", "ANN", "ANN", "ANN", "ANN", "ANN",
"ANN", "ANN", "ANN", "SLE"), label = "Type chir. bariat."),
T12 = structure(c("ANN",
"ANN", "ANN", "ANN", "ANN", "ANN", "ABL", "ANN", "ANN", "ANN",
"ANN", "ANN", "ANN", "ANN", "ANN", "ANN", "ANN", "ABL", "ANN",
"ANN", "ANN", "ANN", "ANN", "SLE", "ANN", "ANN", "ANN", "ABL",
"ANN", "ANN", "ANN", "ANN", "ANN", "ANN", "ANN", "ANN", "ANN",
"ANN", "ANN", "ANN", "ANN", "ANN", "ANN", "ANN", "ANN", "ANN",
"ANN", "ANN", "ANN", "SLE"), label = "Type chir. bariat."),
T13 = structure(c("ANN",
"ANN", "ANN", "ANN", "ANN", "ANN", "ABL", "ANN", "ANN", "ANN",
"ANN", "ANN", "ANN", "ANN", "ANN", "ANN", "ANN", "ABL", "ANN",
"ANN", "ANN", "ANN", "ANN", "SLE", "ANN", "ANN", "ANN", "BPG",
"ANN", "ANN", "ABL", "ANN", "ANN", "ANN", "ANN", "ANN", "ANN",
"ANN", "ANN", "ANN", "ANN", "ANN", "ANN", "ANN", "ANN", "ANN",
"ANN", "ANN", "ANN", "SLE"), label = "Type chir. bariat."),
T14 = structure(c("ANN",
"ANN", "ANN", "ANN", "ANN", "ANN", "ABL", "ANN", "ANN", "ANN",
"ANN", "ANN", "ANN", "ANN", "ANN", "ANN", "ANN", "ABL", "ANN",
"ANN", "ANN", "ANN", "ANN", "SLE", "ANN", "ANN", "ANN", "BPG",
"ANN", "ANN", "ABL", "ANN", "ANN", "ANN", "ANN", "ANN", "ANN",
"ANN", "ANN", "SLE", "ANN", "ANN", "ANN", "ANN", "ANN", "ANN",
"ANN", "ANN", "ANN", "SLE"), label = "Type chir. bariat."),
T15 = structure(c("ANN",
"ANN", "ANN", "ANN", "ANN", "ANN", "ABL", "ANN", "ANN", "ANN",
"ANN", "ANN", "ANN", "ANN", "ANN", "ANN", "ANN", "ABL", "ANN",
"ANN", "ANN", "ANN", "ANN", "SLE", "ANN", "ANN", "ANN", "BPG",
"ANN", "ANN", "SLE", "ANN", "ANN", "ANN", "ANN", "ANN", "ANN",
"ANN", "ANN", "SLE", "ANN", "ANN", "ANN", "ANN", "ANN", "ANN",
"ANN", "ANN", "ANN", "SLE"), label = "Type chir. bariat."),
T16 = structure(c("ANN",
"ANN", "ANN", "ANN", "ANN", "ANN", "ABL", "ANN", "ANN", "ANN",
"ANN", "ANN", "ANN", "ANN", "ANN", "ANN", "ANN", "ABL", "ANN",
"ANN", "ANN", "ANN", "ANN", "SLE", "ANN", "ANN", "ANN", "BPG",
"ANN", "ANN", "SLE", "ANN", "ANN", "ANN", "ANN", "ANN", "ANN",
"ANN", "ANN", "SLE", "ANN", "ANN", "ANN", "ANN", "ANN", "ANN",
"ANN", "ANN", "ANN", "SLE"), label = "Type chir. bariat."),
T17 = structure(c("ANN",
"ANN", "ANN", "ANN", "ANN", "ANN", "ABL", "ANN", "ANN", "ANN",
"ANN", "ANN", "ANN", "ANN", "ANN", "ANN", "ANN", "ABL", "ANN",
"ANN", "ANN", "ANN", "ANN", "SLE", "ANN", "ANN", "ANN", "BPG",
"ANN", "ANN", "SLE", "ANN", "ANN", "ANN", "ANN", "ANN", "ANN",
"ANN", "ANN", "SLE", "ANN", "ANN", "ANN", "ANN", "ANN", "ANN",
"ANN", "ANN", "ANN", "SLE"), label = "Type chir. bariat."),
T18 = structure(c("ANN",
"ABL", "ANN", "ANN", "ANN", "ANN", "ABL", "ANN", "ANN", "ANN",
"ANN", "ANN", "ANN", "ANN", "ANN", "ANN", "ANN", "ABL", "ANN",
"ANN", "ANN", "ANN", "ANN", "SLE", "ANN", "ANN", "ANN", "BPG",
"ANN", "ANN", "SLE", "ANN", "ANN", "ANN", "ANN", "ANN", "ANN",
"ANN", "ANN", "SLE", "ANN", "ANN", "ANN", "ANN", "ANN", "ANN",
"ANN", "ANN", "ANN", "SLE"), label = "Type chir. bariat."),
T19 = structure(c("ANN",
"ABL", "ANN", "ANN", "ANN", "ANN", "ABL", "ANN", "ANN", "ANN",
"ANN", "ANN", "ANN", "ANN", "ANN", "ANN", "ANN", "ABL", "ANN",
"ANN", "ANN", "ANN", "ANN", "SLE", "ANN", "ANN", "ANN", "BPG",
"ANN", "ANN", "SLE", "ANN", "ANN", "ANN", "ANN", "ANN", "ANN",
"ANN", "ANN", "SLE", "ANN", "ANN", "ANN", "ANN", "ANN", "ANN",
"ANN", "ANN", "ANN", "SLE"), label = "Type chir. bariat."),
T20 = structure(c("ANN",
"ABL", "ANN", "ANN", "ANN", "ANN", "ABL", "ANN", "ANN", "ANN",
"ANN", "ANN", "ANN", "ANN", "ANN", "ANN", "ANN", "ABL", "ANN",
"ANN", "ANN", "ANN", "SLE", "SLE", "ANN", "ANN", "ANN", "BPG",
"ANN", "ANN", "SLE", "ANN", "ANN", "ANN", "ANN", "ANN", "ANN",
"ANN", "ANN", "SLE", "ANN", "ANN", "ANN", "ANN", "ANN", "ANN",
"ANN", "ANN", "ANN", "SLE"), label = "Type chir. bariat.")),
row.names = c(NA,-50L), class = c("tbl_df", "tbl", "data.frame"))
Я хочу построить график и легенды рядом друг с другом, так как, по-видимому, функция seqheatmap from seqhandbook
не отображает легенды.
Я сделал это отдельно и хочу сделать это с помощью функции layout from R base
Мой код для создания последовательностей
# ALPHABETS AND LABELS
labels <- sort(c("ANN","SLE","BPG","BPD","ABL","DCD"))
Etats_lng<-c("Ablation","Anneau","Derivation bilio-pancréatique","By-pass gastrique",
"Décès","Sleeve")
seq <- seqdef(
mydata[, paste("T",1:20,sep = "")],
alphabet = labels,
states = Etats_lng,
cpal = viridis(6, direction = -1)
)
# distances
couts <- seqsubm(seq, method = "CONSTANT", cval = 2)# Matrice des couts de substitution
seq.dist<- seqdist(seq, method = "OM", indel = 1, sm = couts)# Distance avec optimal-Matching
seq.hclust <- hclust(as.dist(seq.dist), method = "ward.D2") #Clustering des trajectoire
#SETTING OF LAYOUT
layout.matrix <- matrix(c(1,2), nrow = 1, ncol = 2)
layout(mat = layout.matrix,
widths = c(3,1) )# Widths of the two columns
layout.show(2)
В первом кадре я хочу поместить тепловую карту, а во втором — легенды
Но я действительно работаю
seq_heatmap(seq, seq.hclust)
seqlegend(seq)
Ответ №1:
Функция layout
не работает в вашем примере, потому layout
что не может быть вложена и heatmap
(вызывается seq_heatmap
) уже используется layout
для создания тепловой карты.
Единственное решение, которое я вижу, — это получить исходный код функции heatmap
(из статистики), переименовать его, скажем myheatmap
, и изменить его, чтобы добавить отображение цветовой легенды.
Чтобы получить код heatmap
myheatmap <- heatmap
edit(myheatmap)
Для edit
работы вам, возможно, придется указать редактор. Кроме того, вы можете использовать View
и копировать вставленный контент в выбранном вами редакторе.
Комментарии:
1. Спасибо за ваш ответ @Gilbert. Но я понятия не имею, как получить источник кода из статистики.
2. Теперь я объясню, как получить код в ответе