示例代码:
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
.
我知道我可以只使用 ² 的 unicode 符号来获取上标,但总的来说,我认为必须有一种方法可以将数学表达式和存储在对象中的计算值结合起来。
我试图玩弄eval
和各种组合paste
,但似乎我一直遇到同样的问题。
编辑#1:
我尝试bquote
根据这个答案使用,如下所示:
scale_color_discrete(labels = bquote(R^2 == .(rsq)))
事实证明,这只会将图例呈现为==
.
编辑#2:
即使下面的答案有效,但似乎......对于更复杂的表达式非常不方便,如下所示:
我仍然希望有一个更简单的解决方案。