ggplot:如何将标题延伸到图形边缘之外

4

我有一个带有一些长标签和长标题的图表。我正在使用coord_flip(),因此由于标签,图表边缘外有很多空间。默认情况下,标题受到图表边缘的限制。

如何使标题超出图表边缘(向左)以便可以跨越整个宽度?以下是一个示例:

ggplot(diamonds, aes(x = cut)) + 
  geom_bar() + 
  coord_flip() + 
  scale_x_discrete("Cut", 
                   labels = c("Fair" = "Fair and a very long extra thing",
                              "Good" = "Good  and a very long extra thing",
                              "Very Good" = "VG  and a very long extra thing", 
                              "Premium" = "P and a very long extra thing. A very long label, just because", 
                              "Ideal" = "I and a very long extra thing")) + 
  ggtitle("This is my very long title.  Long long title. Very long.  The Longest. We have the best long titles.")

My plot with long labels/title


也许这个链接(https://dev59.com/aGEh5IYBdhLWcg3w6HEG)或者这个链接(https://dev59.com/NFoU5IYBdhLWcg3wu4ni)会有所帮助? - joran
@joran 谢谢,我不需要包装标签(在我的实际图中没有任何自由垂直空间)。我只想让标题跨越整个宽度。 - jzadra
1
也许可以尝试使用 theme(plot.title = element_text(hjust = 0.95)) - joran
@joran 耶稣。我刚刚花了30分钟调整边距并搜索,但没有任何结果。现在我感觉很愚蠢。感谢你的帮助! - jzadra
是的,我们都经历过那个阶段。 - joran
1
另外,grid.arrange(ggplot(), top = "标题在此") 将其放置在整个视口上,而不仅仅是在面板上。 - baptiste
2个回答

6
也许可以尝试这样做:
+ theme(plot.title = element_text(hjust = 0.95))

将标题移动到旁边。


我遇到了一个后续问题。当我的标题有多行时,每行的hjust表现得都不同。我似乎找不到针对对齐和参考点的不同设置。(尝试在ggtitle中放置\n并使用hjust = -.5) - jzadra

3

添加

+ theme(plot.title.position = "plot")

还有一种方法可以解决这个问题,即使标题很短,也可以让图表跨越整个宽度。我将这个方法留在这里,因为我花了很长时间才记起来这个解决方案,在搜索过程中多次找到了这个页面。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接