TraMineR 图形对 R 的布局没有反应

TraMineR graphics not reactive to layout of R

##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)

函数 layout 在您的示例中不起作用,因为 layout 无法嵌套并且 heatmap(由 seq_heatmap 调用)已经使用 layout 生成热图。

我看到的唯一解决方案是检索函数 heatmap 的源代码(来自 stats),将其重命名为 myheatmap,然后修改它添加颜色图例的显示。

检索heatmap

的代码
myheatmap <- heatmap
edit(myheatmap)

要使 edit 正常工作,您可能必须指定编辑器。或者,您可以使用 View 并在您选择的编辑器中复制粘贴内容。