我经常发现自己想要根据它们的位置不同地对齐图上的x轴标签,左边的值左对齐,右边的值右对齐。然而,element_text
没有official support for vectorized input(和never will?),所以我想知道如何以正确的ggplot2
方式解决这个问题。
问题:重叠的x轴标签(并在最右侧截断)
library(ggplot2)
v <- data.frame(x=1:2, y=1:2, facet=gl(2, 2))
gp <- ggplot(v) +
geom_point(aes(x=x, y=y)) +
scale_x_continuous(breaks = 1:2, labels = c("Minimum", "Maximum")) +
facet_wrap(~facet)
gp
我的解决方案:
gp + theme(axis.text.x = element_text(hjust=c(0, 1)))
除了:
Warning message:
Vectorized input to `element_text()` is not officially supported.
ℹ Results may be unexpected or may change in future versions of ggplot2.
如果不支持矢量化element_text
,ggplot中不同对齐文本的正确方法是什么?
1条答案
按热度按时间fcwjkofz1#
Claus Wilke在这里声明,他的ggtext包确实支持以这种方式使用vector,并且它将在未来继续支持它。正如thomasp 85(Thomas Lin Pedersen)在帖子中所说的“FWIW,我认为大多数这种黑客的用例都可以使用element_markdown()正确解决”。这是否解决了你的问题?即
创建于2023-04-11带有reprex v2.0.2