首页 > 解决方案 > 使用 draw_label 左对齐和右对齐文本

问题描述

使用绘图标签时,是否有类似于 ms word 的左对齐和右对齐文本?

在此处输入图像描述

所需的最终结果样式文本:

在此处输入图像描述

chart <- mtcars %>% 
  ggplot(aes(x = hp, y = cyl)) +
  geom_point()

label <- ggdraw() +
    draw_label(label = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt\nut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco\nlaboris nisi ut aliquip ex ea commodo.",
               size = 8,
               hjust = 0, 
               x = 0.05)

plot_grid(label,
          chart,
          ncol = 1)

标签: rggplot2

解决方案


如果您想使用 's 执行此操作cowplot,请参见下文。draw_labelrel_heights

但正如@Tjebo 指出的那样,选择的文字对于数字标题来说可能有点长 - 请参阅第二部分。

library(tidyverse)
library(cowplot)

chart <- mtcars %>% 
  ggplot(aes(x = hp, y = cyl)) +
  geom_point()


p1 <- ggdraw() + 
  draw_label(label = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, 
             sed do eiusmod tempor incididunt\nut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco\nlaboris nisi ut aliquip ex ea commodo.",
             size = 8)

# You can use **rel_heights**
plot_grid(p1, chart, ncol = 1, align = "h", rel_heights = c(1,4))

# Text is a bit long for a figure caption and should somewhere else
# But you could use title, subtitle and caption, which you can move
chart + 
  labs(caption = "Lorem ipsum dolor sit amet, consectetur adipiscing elit",
       title = 'LOREM IPSUM',
       subtitle = '... dolor sit amet, consectetur adipiscing elit') +
  theme(plot.caption = element_text(hjust = 1, face= "italic"), 
        plot.title.position = "plot", 
        plot.caption.position =  "plot")

参考


推荐阅读