Пример кода:
rsq <- round(cor(mtcars$disp, mtcars$mpg)^2, 2) # rsq = 0.72
ggplot(mtcars, aes(x = disp, y = mpg)) +
geom_point() +
geom_smooth(method = lm, aes(color = "Linear")) +
scale_color_discrete(labels = expression(paste("R"^2, " = ", rsq)))
Я хотел бы, чтобы легенда отображалась как R² = 0.72
.
Я знаю, что могу просто использовать символ Юникода для ², чтобы получить верхний индекс, но в целом я думаю, что должен быть способ комбинировать математические выражения и вычисляемые значения, хранящиеся в объекты.
Я пытался поиграть с eval
и различными комбинациями paste
, но, кажется, я продолжаю сталкиваться с одной и той же проблемой.
Изменить № 1:
я попытался использовать bquote
в соответствии с этим ответьте так:
scale_color_discrete(labels = bquote(R^2 == .(rsq)))
Оказывается, легенда отображается только как ==
.
Редактировать № 2:
Несмотря на то, что приведенный ниже ответ работает, он кажется… очень неудобным для более сложных выражений, например:
Я все еще надеюсь на более простое решение.