В `gplots` в `R`, как мы можем настроить положение отметок x-метки в функции `heatmap.2`?

Я пытаюсь воспроизвести график, найденный здесь на стр. 4:

введите здесь описание изображения

Воспроизводимый код для него:

require(devtools)
install_git("https://github.com/marchion/git.switchBox", subdir="switchBox")
require(switchBox)
require(gplots)
data(trainingData)    
classifier <- SWAP.KTSP.Train(matTraining, trainingGroup)
kappa <- SWAP.KTSP.Statistics(matTraining, classifier)
mat <- t(1*kappa$comparisons)
rownames(mat) <- gsub(">", "\n more express than\n", rownames(mat))

heatmap.2(mat,
scale="none", Rowv=F, Colv=F, dendrogram="none",
trace="none", key=FALSE,
col=c("lightsteelblue2", "pink3"),
labCol=toupper(paste(trainingGroup, "Prognosis")),
sepwidth=c(0.075,0.075), sepcolor="black",
rowsep=1:ncol(kappa$comparisons),
colsep=1:nrow(kappa$comparisons),
lmat=rbind( c(0, 3), c(2, 1), c(0, 4) ), lhei=c(0.1, 5, 0.5), lwid=c(0.15, 5),
mar=c(7.5, 12), cexRow=0.85, cexCol=0.9)

Если вы заметили на графике выше, метки x немного смещены влево от центра. Есть ли внутри функции heatmap.2 команда, которая может сдвигать каждую метку вправо?


person user321627    schedule 14.04.2019    source источник


Ответы (1)


Вы должны указать аргумент adjCol (c(1, 0.5)), который даст вам желаемый результат (c(1, 0) переместит его влево, а c(1, 1) переместит его вправо).

Код (с использованием пакетов и данных, предоставленных OP):

heatmap.2(
  mat,
  adjCol = c(1, 0.5), 
  scale = "none", Rowv = FALSE, Colv = FALSE, dendrogram = "none",
  trace = "none", key = FALSE,
  col = c("lightsteelblue2", "pink3"),
  labCol = toupper(paste(trainingGroup, "Prognosis")),
  sepwidth = c(0.075,0.075), sepcolor = "black",
  rowsep = 1:ncol(kappa$comparisons),
  colsep = 1:nrow(kappa$comparisons),
  lmat = rbind( c(0, 3), c(2, 1), c(0, 4) ),
  lhei = c(0.1, 5, 0.5), lwid = c(0.15, 5),
  mar = c(7.5, 12), cexRow = 0.85, cexCol = 0.9,
)

Результат:

введите здесь описание изображения

person pogibas    schedule 14.04.2019