##PACKAGES
library(tidyverse,quietly=TRUE)
library(TraMineR)
library(WeightedCluster, quietly = TRUE)
library(viridis)
library(seqhandbook, quietly = TRUE)
Here is a representation of my dataset:
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"))
I want to plot a graphic and the legends next to each other, since apparently, the function seqheatmap from seqhandbook does not display the legends.
I have done the two separately and want to do this with the function layout from R base
My code for the creation of sequences
# 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)
In the first frame, I want to put the heatmap and in the second one the legends
But I doest works
seq_heatmap(seq, seq.hclust)
seqlegend(seq)

Function
layoutdoes not work in your example becauselayoutcannot be nested andheatmap(invoked byseq_heatmap) already useslayoutto generate the Heat Map.The only solution I see is to retrieve the source code of function
heatmap(from stats), rename it saymyheatmap, and modify it to add the display of the color legend.To retrieve the code of
heatmapFor
editto work, you may have to specify the editor. Alternatively, you can useViewand copy paste the content in the editor of your choice.