【发布时间】:2018-12-08 07:03:25
【问题描述】:
在 ggplot 中,通常情况下我想使用 grid.arrange() 和 arrangeGrob() 创建一个多图,其中轴标签是多余的。以下图为例:
data = data.frame(x=1:50, y=50:1)
p1=ggplot(data, aes(x=x, y=y)) + geom_line() + xlab("Dimension") + ylab("Magnitude")
p2=ggplot(data, aes(x=x, y=-y)) + geom_line() + xlab("Dimension") + ylab("Magnitude")
grid.arrange(p1, p2, nrow=1)
很明显,标签“维度”和“幅度”在最右边的图上是多余的。
我知道我可以轻松删除刻度、标签和标题:
p2=p2 +
theme(axis.title.x=element_blank(),
axis.text.x=element_blank(),
axis.ticks.x=element_blank(),
axis.title.y=element_blank(),
axis.text.y=element_blank(),
axis.ticks.y=element_blank())
grid.arrange(p1, p2, nrow=1)
但这让我在第二个数字上的边缘被压碎了。我知道我可以通过scale_x_continuous 和scale_y_continuous 手动执行此操作,而不是像我通过theme() 那样用空白替换它们,我可以手动将所有内容设置为"",但这很耗时而且需要像element_blank() 这样的自动化程度较低的方法。
是否有类似的简单方法可以删除标签,而不会破坏它们之前占用的空间?像 element blank 这样没有“不分配空间”方面的东西。
【问题讨论】:
标签: r ggplot2 axis axis-labels axes