假设我有两个由下面的R代码生成的并排的图,它们具有相同的y轴:
df <- data.frame(x=c(5,2,7,3), y=c(11,3,5,6), facet=c(1,1,2,2))
ggplot(df, aes(x, y)) + facet_grid(~facet) + geom_point()
是否可以将y轴上的文字(例如10.0、7.5、5.0)写在两个图表中间?(最好能居中对齐)
hjust=0
替换为hjust=0.5
可以使文本居中。另外,虽然原问题中没有提到,但是否可以通过ggsave
实现呢?目前,如果我使用ggsave(p, file="p.pdf")
,轴标签就不会被绘制出来。 - rodrigorgsg
而不是p
。你需要一个解决方法,因为ggsave
期望一个ggplot
(而不是一个 gtable 对象)。使用来自这里 [https://dev59.com/_WMl5IYBdhLWcg3wbGh1] 的 Baptiste 解决方案,即ggsave <- ggplot2::ggsave; body(ggsave) <- body(ggplot2::ggsave)[-2]
,然后可以使用ggsave(grid.draw(g), file="p.pdf")
生成图表。 - user20650pdf
——这是我使用的(记得grid.draw(g)
)。 - user20650pdf(...)
,dev.off()
,但在这种情况下我更喜欢使用ggsave(...)
。 - rodrigorgs