我的目標是將散點圖和2個地塊組合爲密度估計值的複合圖。我面臨的問題是由於密度圖的缺失軸標記和散點圖的圖例,密度圖與散點圖沒有正確對齊。它可以通過與plot.margin
圍繞進行調整。但是,這不是一個可取的解決方案,因爲如果對圖進行更改,我將不得不一遍又一遍地調整它。有沒有辦法以一種方式定位所有的地塊,以便實際的繪圖板完美對齊?完美對齊幾塊地塊
我試圖保持代碼儘可能小,但爲了再現它仍然是相當多的問題。
library(ggplot2)
library(gridExtra)
df <- data.frame(y = c(rnorm(50, 1, 1), rnorm(50, -1, 1)),
x = c(rnorm(50, 1, 1), rnorm(50, -1, 1)),
group = factor(c(rep(0, 50), rep(1,50))))
empty <- ggplot() +
geom_point(aes(1,1), colour="white") +
theme(
plot.background = element_blank(),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
panel.border = element_blank(),
panel.background = element_blank(),
axis.title.x = element_blank(),
axis.title.y = element_blank(),
axis.text.x = element_blank(),
axis.text.y = element_blank(),
axis.ticks = element_blank()
)
scatter <- ggplot(df, aes(x = x, y = y, color = group)) +
geom_point() +
theme(legend.position = "bottom")
top_plot <- ggplot(df, aes(x = y)) +
geom_density(alpha=.5, mapping = aes(fill = group)) +
theme(legend.position = "none") +
theme(axis.title.y = element_blank(),
axis.title.x = element_blank(),
axis.text.y=element_blank(),
axis.text.x=element_blank(),
axis.ticks=element_blank())
right_plot <- ggplot(df, aes(x = x)) +
geom_density(alpha=.5, mapping = aes(fill = group)) +
coord_flip() + theme(legend.position = "none") +
theme(axis.title.y = element_blank(),
axis.title.x = element_blank(),
axis.text.y = element_blank(),
axis.text.x=element_blank(),
axis.ticks=element_blank())
grid.arrange(top_plot, empty, scatter, right_plot, ncol=2, nrow=2, widths=c(4, 1), heights=c(1, 4))
僅供參考,您應該'set.seed()',你中的R示例,使輸出重複性 – Chris
@克里斯例子之前:實際數據在這裏並不重要。所以我認爲這並不重要。 – Alex
http://stackoverflow.com/questions/17370853/align-ggplot2-plots-vertically/17371177#17371177 – user20650