在之前的R帖Specifying ggplot2 panel width之后,我已经能够制作这个情节:
您可以在http://ubuntuone.com/0Nlb97mOeDhSbFrbFKCeEG
找到dput(datos)的输出现在我的问题是如何删除/缩小图表之间的空白区域。我找到了ggExtra包,ggplot和facet的例子,带有plot.margin或panel.margin选项的multiplots但是找不到如何应用于我的情况。
感谢您的帮助。
编辑:我刚刚注意到情节的宽度不一样。需要它们具有相同的宽度,以便它们可以从底部图中共享x轴标签。答案 0 :(得分:7)
使用xlab(NULL)
代替xlab(" ")
将删除每个图底部的一些空格。
使用opts(plot.margin = unit(c(0,0,0,0), "cm"))
会从边缘移除一点空间。
我认为你通过创建5个单独的图并重新组合它们来使事情变得过于复杂。分面更容易。
mdatos <- melt(datos[, -1], id.vars = "dia")
(p_all <- ggplot(mdatos, aes(dia, value)) +
geom_line(colour = "blue") +
facet_grid(variable ~ ., scale = "free_y") +
xlab("Day") +
ylab(NULL)
)
绘图面板的宽度不同,因为有些y轴标签有三位数字,有些只有两位。更改y轴的格式,或使用我的facetting建议。
答案 1 :(得分:2)
您可以使用par
和layout
布局和控制多个子图的边距。例如:
par (fig=c(0,1,0,1), # Figure region in the device display region (x1,x2,y1,y2)
omi=c(0,0,0.3,0), # global margins in inches (bottom, left, top, right)
mai=c(0.1,0.1,0.3,0.1)) # subplot margins in inches (bottom, left, top, right)
layout(matrix(1:4, 2, 2, byrow = TRUE))