对齐多行“胶水”表达式
aligning multi-line `glue` expression
我正在使用 {glue}
包来编写表达式,然后解析并显示在 ggplot2 注释中。
但是,如果我有一个多行表达式,它们不会垂直对齐。我怎样才能实现这样的对齐?我以为 atop + displaystyle
会这样做,但事实并非如此。
library(ggplot2)
library(glue)
b.text <- "bottom part of the expression"
t.text <- "top part of the expression"
ggplot() +
labs(subtitle = parse(text = glue("list(atop('{t.text}', '{b.text}'))")))
我建议创建一个矢量并使用 glue_collapse 通过换行符折叠它
library(ggplot2)
library(glue)
b.text <- "bottom part of the expression"
t.text <- "top part of the expression"
vec <- c(t.text, b.text)
ggplot() +
labs(subtitle = glue_collapse(vec, sep = "\n"))
由 reprex package (v2.0.1)
于 2021-11-25 创建
如果我们想使用OP的代码,在字符串中填充space字符数较少的
library(ggplot2)
library(stringr)
library(glue)
mx <- max(nchar(t.text), nchar(b.text)) + 1
ggplot() +
labs(subtitle = parse(text = glue("list(atop('{str_pad(t.text, width = mx + 2, side = 'right')}', '{b.text}'))")))
我正在使用 {glue}
包来编写表达式,然后解析并显示在 ggplot2 注释中。
但是,如果我有一个多行表达式,它们不会垂直对齐。我怎样才能实现这样的对齐?我以为 atop + displaystyle
会这样做,但事实并非如此。
library(ggplot2)
library(glue)
b.text <- "bottom part of the expression"
t.text <- "top part of the expression"
ggplot() +
labs(subtitle = parse(text = glue("list(atop('{t.text}', '{b.text}'))")))
我建议创建一个矢量并使用 glue_collapse 通过换行符折叠它
library(ggplot2)
library(glue)
b.text <- "bottom part of the expression"
t.text <- "top part of the expression"
vec <- c(t.text, b.text)
ggplot() +
labs(subtitle = glue_collapse(vec, sep = "\n"))
由 reprex package (v2.0.1)
于 2021-11-25 创建如果我们想使用OP的代码,在字符串中填充space字符数较少的
library(ggplot2)
library(stringr)
library(glue)
mx <- max(nchar(t.text), nchar(b.text)) + 1
ggplot() +
labs(subtitle = parse(text = glue("list(atop('{str_pad(t.text, width = mx + 2, side = 'right')}', '{b.text}'))")))