Как выровнять текст в аннотации по левому краю из ggplot2

93

Мой пример:

qplot(mtcars$mpg) + 
  annotate(geom = "text", x = 30, y = 3, label = "Some text\nSome more text")

Как мне добиться выравнивания текста здесь по левому краю? Так что некоторые выстроились в линию друг с другом.

KennyB
источник

Ответы:

147

hjust = 0делает что хотите. hjust обозначает горизонтальное выравнивание , 0 будет выровнено по левому краю , 0,5 будет по центру и 1 будет по правому краю.

qplot(mtcars$mpg) +
    annotate(geom = "text", x = 30, y = 3,
             label = "Some text\nSome more text",
             hjust = 0)

См. Также vjustвертикальное выравнивание.

В ggplot2, эти аргументы присутствуют каждый раз, когда устанавливаются текстовые предпочтения. Они работают для annotate, geom_textили element_textпри настройке параметров темы.

Если вы посмотрите на ?geom_text, вы можете найти варианты текста строки: "left", "middle"или "right", (для hjust), "top", "center", "bottom"для vjust, и для любой "inward"и "outward"который всегда будет корректировать в сторону или вне от центра.


Это поведение подобно поведению во многих baseграфических функций, таких , как adjаргумент для par, используемых text(), mtext()и title(), что может быть вектором длины 2 для горизонтальных и вертикальных justificatons. Кроме того , hadjи padjаргументы axis()для оправданий ч orizontal к и р erpendicular оси.

Грегор Томас
источник
Отличный ответ. @Gregor, можешь ли ты связать нас с хорошей статьей о скрытых параметрах ggplot, подобных этим .. Большая часть ссылок на ggplot говорит ... Other arguments passed on to layer(). These are often aesthetics, used to set an aesthetic to a fixed value, like colour = "red" or size = 3. They may also be parameters to the paired geom/stat. ... что не очень полезно.
Лазарь Терстон,
@LazarusThurston Параметры не скрыты, они тщательно задокументированы на основных страницах geom. annotateпозволяет использовать практически любую геометрию, которая использовалась здесь geom = "text", поэтому на ?geom_textстранице справки есть соответствующие детали. ?geom_textимеет заголовок для выравнивания , который начинается «Вы можете изменить выравнивание текста с vjustи hjustэстетикой Они могут либо быть числом в диапазоне от 0 (справа / снизу) и 1 (верхнего / влево) или символа ....»
Грегор Томаса