Я пытаюсь использовать geom_text для создания метки «Поглощение лодыжки W = -0,52–0,13 x Высота прыжка». Насколько я понимаю, мне нужно использовать %*% внутри выражения() для вывода знака x. Числа хранятся в фрейме данных. У меня возникли трудности с получением выражения() для чтения значений фрейма данных - оно просто печатает имя фрейма данных.
Вот мой текущий код:
ggplot(mtcars, aes(hp, wt)) +
geom_text( label = expression( 'Ankle Absorption W = '
mtcars$hp[1],' ', mtcars$hp[2] %*% 'Hop Height' ) )
Результатом для части mtcars$hp[1]
была просто печать «mtcars$hp[1]», а не сохраненных значений.
Я просмотрел другие сообщения и попробовал использовать bquote()
и paste()
в выражении(), но оно просто печатает «bquote» и «вставить».
Когда bquote
и expression
у меня не работают, я перехожу к ggtext
, где мы можем указать компоненты, используя уценку/юникод/HTML, например. ×
, чтобы получить символ умножения в Юникоде.
@JonSpring - спасибо! Я думаю, что это будет хорошо работать для того, что мне нужно.
@MrFlick Спасибо за ваш ответ! Вы правы, сегодня, когда я попробовал выражение, я получил синтаксическую ошибку. Это странно, потому что вчера я не получил ошибку. Мне не очень повезло с bquote. Я хотел иметь возможность делать что-то вроде ggplot2(mtcars, aes(hp, wt)) + geom_text( label = bquote( 'Ankle Absorption W = ' ~ .(mtcars$hp[1] ) ~ .(mtcars$mpg[1] ) ~ 'Hop Height' ) )
. Я не мог понять, как добавить символ умножения с помощью bquote — эта функция для меня новая. Извините за мои корявые ответы. Я раньше здесь не писал и не знаю, как это правильно отформатировать.
Вот пример использования ggtext
со стандартным набором данных (с более короткими именами переменных):
ggplot(mtcars, aes(hp, wt)) +
ggtext::geom_richtext(aes(label = glue::glue("{hp} × {wt}")),
fill = NA, label.color = NA)
Вам будет легче помочь, если вы включите простой воспроизводимый пример с примерами ввода и желаемым результатом, который можно использовать для тестирования и проверки возможных решений. Я ожидаю синтаксическую ошибку в коде, которым вы поделились. Ваше выражение выглядит недействительным. Как именно выглядела ваша попытка
bquote()
? Потому что именно так вам придется пойти сюда.