Шрифты и размер дерева, отображаемого ggtree

Я пытаюсь использовать пакет R ggtree для визуализации моего полигенного дерева. Я использую следующие коды:

library(ggtree)
library(treeio)
tree_text<-read.table("tree.nwk")
tree <-read.tree(text=as.character(tree_text$V1))
ggtree(tree, layout="daylight") + geom_tiplab(aes(angle=angle))

Некоторые метки кончиков дерева находятся вне области графика и невидимы. Я использую команду dev.size("in"), чтобы получить размер графического окна, и она возвращает: [1] 5.760417 5.750000. Мне бы хотелось, чтобы дерево отображалось в области размера бумаги A4, поэтому я пытаюсь сделать графическое окно большего размера:

windows(height=8,width=8)
ggtree(tree, layout="daylight") + geom_tiplab(aes(angle=angle))

но это не работает. Команда dev.size("in") по-прежнему возвращает: [1] 5.760417 5.750000, а некоторые метки кончиков дерева все еще находятся вне области графика. Если я использую ggsave для сохранения изображения:

p<-ggtree(tree, layout="daylight") + geom_tiplab(aes(angle=angle))    
ggsave("tree.eps",p,height=8,width=8)

это дает ошибку:

Error in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y,  : 
      family 'sans' not included in postscript() device

Если я сохраню изображение в формате PDF:

postscript("tree.pdf",family="Times",fonts="sans")

это работает, и изображение может быть сохранено, но некоторые метки кончиков дерева все еще находятся вне области графика. Я пытаюсь увеличить значение высоты и ширины в ggsave, но размер дерева увеличивается с холстом графика, поэтому невидимые метки кончиков всегда невидимы

Знаете ли вы, как исправить проблему и отобразить все полные метки подсказок дерева? Буду благодарен любой помощи help

1 ответ

Итак, я пошел и установил ggtree,

Следующий код взят из виньетки пакета.

library(ggtree)
raxml_file <- system.file("extdata/RAxML", "RAxML_bipartitionsBranchLabels.H3", package="treeio")
raxml <- read.raxml(raxml_file)
p <- ggtree(raxml) + geom_label(aes(label=bootstrap, fill=bootstrap)) + geom_tiplab() +
  scale_fill_continuous(low='darkgreen', high='red') + theme_tree2(legend.position='right')
p

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

Добавление xlim(0, 0.25) + ylim(0, 70) показывает большинство вырезанных текстов.

p + xlim(0, 0.25) + ylim(0, 70)

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

Другие вопросы по тегам