Как добавить значения фрейма данных и математические операторы в geom_text в R?

Я пытаюсь использовать 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()? Потому что именно так вам придется пойти сюда.

MrFlick 16.07.2024 22:47

Когда bquote и expression у меня не работают, я перехожу к ggtext, где мы можем указать компоненты, используя уценку/юникод/HTML, например. ×, чтобы получить символ умножения в Юникоде.

Jon Spring 16.07.2024 23:29

@JonSpring - спасибо! Я думаю, что это будет хорошо работать для того, что мне нужно.

D.O. 17.07.2024 20:50

@MrFlick Спасибо за ваш ответ! Вы правы, сегодня, когда я попробовал выражение, я получил синтаксическую ошибку. Это странно, потому что вчера я не получил ошибку. Мне не очень повезло с bquote. Я хотел иметь возможность делать что-то вроде ggplot2(mtcars, aes(hp, wt)) + geom_text( label = bquote( 'Ankle Absorption W = ' ~ .(mtcars$hp[1] ) ~ .(mtcars$mpg[1] ) ~ 'Hop Height' ) ). Я не мог понять, как добавить символ умножения с помощью bquote — эта функция для меня новая. Извините за мои корявые ответы. Я раньше здесь не писал и не знаю, как это правильно отформатировать.

D.O. 17.07.2024 21:40
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
4
56
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вот пример использования ggtext со стандартным набором данных (с более короткими именами переменных):

ggplot(mtcars, aes(hp, wt)) +
  ggtext::geom_richtext(aes(label = glue::glue("{hp} × {wt}")), 
                        fill = NA, label.color = NA)

Другие вопросы по теме