This is part-2 to my previous question (getting constant text size while using atop function in r).
Now the issue relates to how I can prevent plotmath
from centering the text to avoid the extra spacing (highlighted here in yellow). I want everything aligned to the right side of the plot.
(Unfortunately, I can't replace substitute
with expression
if that's what your suggestion is going to be.)
Any suggestions?
library(ggplot2)
ggplot(iris, aes(Species, Sepal.Length)) +
geom_boxplot() +
labs(caption = substitute(atop(
atop(
displaystyle("layer1 is small"),
displaystyle("layer2 is a bit longer")
),
"layer3 is super-duper longgggggggg"
)))
easiest might be to add text grobs row by row in a gtable,
Let's start with good news. Here's a function that adds enough leading spaces to
from
as to be as long as the longest element from the listto
:Next we have three layers, which also may use
substitute
(as I understand, in your case only the first one uses it).Now the bad news is that
push
achieves the desired effect only with mono fonts, which is not the default family inggplot2
. There are multiple question on SO regarding fonts, so perhaps you may import some other mono font, if you prefer.