gpt4 book ai didi

R/ggplot2 : Evaluate object inside expression

转载 作者:行者123 更新时间:2023-12-04 11:46:16 25 4
gpt4 key购买 nike

示例代码:

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根据 to this answer像这样:
scale_color_discrete(labels = bquote(R^2 == .(rsq)))
事实证明,这只会将图例渲染为 == .

编辑#2:
尽管下面的答案有效,但似乎……对于更复杂的表达式非常不方便,例如:



我仍然希望有一个更简单的解决方案。

最佳答案

结果是 bquote事情很接近。
这有效(虽然感觉......不是最理想的):

  scale_color_discrete(labels = as.expression(bquote(R^2~"="~.(rsq))))

还工作:
 scale_color_discrete(labels = as.expression(bquote(R^2 == .(rsq))))

显然是 ~需要将元素“粘贴”在一起,实际上没有 paste()在他们吗?和 as.expression做什么 expression不能。我不确定到底发生了什么,但唉,它有效:



非常感谢, Peter Dalgaard !

关于R/ggplot2 : Evaluate object inside expression,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35957129/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com