示例代码:
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:
即使下面的答案有效,但对于更复杂的表达式(如下图),它似乎很不方便: 我仍然希望有一个更简单的解决方案。