Я хочу выровнять ggtree
с другим графиком, ограненным теми же переменными, что и надписи для ggtree
.
Данные / графики
tree <- ggtree(ape::read.tree(text='(ant:17, (bat:31, cow:22):7);')) +
geom_tiplab(align=TRUE, linesize=.5) +
theme_classic() # is ugly but gives a better idea of the structure
d1 <- data.frame(
source = c('ant','bat','cow','cow','cow','cow'),
value = c(10,8,7,3,4,6),
row.char = c('ant1', 'ant1','cow1','cow2','cow3','cow4')
)
p1 <- ggplot(d1, aes(y=row.char, x = value)) + geom_point() + facet_grid(source ~ .)
Взгляд на графики
Давайте сначала построим эту диаграмму бок о бок cowplot::plot_grid(tree, p1)
:
То, что я пытаюсь достичь
Я хочу выровнять метку листа с центром соответствующего фасета, поэтому cow
в дереве должно выровняйте с cow
фасетом в p1
. Я знаю, что можно использовать aplot
, чтобы выровнять метки дерева с осью y p1
(см. Нижнюю страницы руководства ggtree ), однако я не смог сделать эту работу с метками фасетов ,
Ps мое дерево и график намного сложнее, однако только для 3 из 40 графиков "p1" мне нужно две или три оси на source