R ggplot 删除 x ticks/titles 而不删除留给他们的 space
R ggplot remove x ticks/titles without removing the space left for them
在 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)
很明显,标签"Dimenion"和"Magnitude"在最右边的图上是多余的。
我知道我可以轻松删除勾号、标签和标题:
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()
这样自动化程度较低的方法。
是否有类似简单的方法来移除标签,而不破坏它们之前占用的 space?像 element blank 没有 "assigns no space" 方面。
像这样?
#devtools::install_github("thomasp85/patchwork")
library(patchwork)
p1 + p2
别问我魔法是怎么运作的。您可以在此处阅读有关该功能的更多信息:github.com/thomasp85/patchwork
在 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)
很明显,标签"Dimenion"和"Magnitude"在最右边的图上是多余的。
我知道我可以轻松删除勾号、标签和标题:
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()
这样自动化程度较低的方法。
是否有类似简单的方法来移除标签,而不破坏它们之前占用的 space?像 element blank 没有 "assigns no space" 方面。
像这样?
#devtools::install_github("thomasp85/patchwork")
library(patchwork)
p1 + p2
别问我魔法是怎么运作的。您可以在此处阅读有关该功能的更多信息:github.com/thomasp85/patchwork