是否可以将 ggplot 图的标题右对齐?

20

我正在生成一张图,它将作为三面板图形右侧的标签列使用,我希望图的标题右对齐,就像图本身中的标签一样。

这是一个最小化的示例,在其中我想要右对齐标题“words”。

ggplot() + 
  geom_text(aes(y = 1, x = seq(4), 
                label = c('fee', 'fi', 'fo', 'fum'), 
                hjust = 1)) +      
  opts(title = 'words') + 
  coord_flip() + 
  scale_y_continuous(breaks = c(0,0), limits = c(0,1)) 

这将产生以下内容:

在此输入图片描述

更新

@joran 的回答是有帮助的,但它不能对齐单词和标签。将他的代码从 hjust=1 更改为 hjust = 0.96 可以接近,但这更像是一个hack而不是一个令人满意的答案。

1个回答

22

您可以使用以下方法达到这个目的:

opts(plot.title = theme_text(hjust=1))

更普遍地说,在这里有一个相当完整的列表,列出了可以通过opts进行修改的内容,您可以在Hadley的网站这里看到一些示例代码演示了这些选项,特别是“polishing”部分。更好的选择是购买他的书。

注意:自0.9.2版本起,optstheme所取代。

theme(plot.title = element_text(hjust = 1)) 

@joran 感谢您的回答并指出这些资源;在找到 opts(title = ... 代码后,我没有想到 , plot.title = ... ) 将是一个单独的参数。 - David LeBauer
@joran 在尝试了一番后,我发现使用 hjust = 1 标题与标签文本不对齐(请参见 O.P. 的更新)。有没有办法使标签和标题对齐? - David LeBauer
@David - 没问题。探索opts的所有角落可能有点具有挑战性。 Hadley的书放在我的电脑旁边,我经常翻阅它来查找一些东西,因为我至少需要10-20次才能开始记住。 - joran
1
@David - theme_text(hjust = 0.95)可以让它接近对齐。你可以从那里调整。 - joran
@joran 谢谢。不确定是需要调整还是有更好的方法,至少 hjust 是一个连续变量。 - David LeBauer
2
在开发版本中,hjust = 1 可以将其完美地对齐。 - hadley

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