2013-06-28 3 views
12

С кодом найдены на https://gist.github.com/low-decarie/5886616 Двойной dendodogram плитки участок может быть получен:Align ggplot2 участки вертикально

dual_dendogram_tile_plot (as.matrix (USArrests), главное = "США Аресты")

enter image description here

Проблема: выровняйте вертикальную дендограмму с областью участка плитки. (и/или улучшить выравнивание по горизонтали dendogram)

Этот вопрос относится к:

left align two graph edges (ggplot)
Specifying ggplot2 panel width Plot correlation matrix into a graph

+4

если вы собираетесь выравнивать как по вертикали, так и по горизонтали на панели сюжета, ваш лучший вариант, чтобы получить хорошее представление о 'gtable', на мой взгляд, и оттуда вы сможете добавлять новые грызуны, новые видовые экраны и т. д. к небезопасному gtable, возвращаемому ggplot. – baptiste

+0

Спасибо большое баптист! Теперь суть отражает ваш ответ. –

ответ

22

Вот пример для выравнивания более основных grobs,

library(ggplot2) 
library(grid) 
library(gtable) 

p <- qplot(1,1) 
g <- ggplotGrob(p) 

panel_id <- g$layout[g$layout$name == "panel",c("t","l")] 
g <- gtable_add_cols(g, unit(1,"cm")) 

g <- gtable_add_grob(g, rectGrob(gp=gpar(fill="red")), 
        t = panel_id$t, l = ncol(g)) 

g <- gtable_add_rows(g, unit(1,"in"), 0) 
g <- gtable_add_grob(g, rectGrob(gp=gpar(fill="blue")), 
        t = 1, l = panel_id$l) 

grid.newpage() 
grid.draw(g) 

enter image description here

и с grobs

enter image description here

+0

Искушение потрясающе! Благодаря! –

+0

Красная панель на rhs не показывает - это я? : - | – PatrickT

+1

@PatrickT ggplot2 часто меняет свою внутреннюю структуру, разбивая все такие решения. Я обновил этот пример. – baptiste