【发布时间】:2016-06-18 08:37:29
【问题描述】:
我想要一个图例既包含 R 平方值,又包含另一个值(在本例中为数据点的数量,n,但这并不是特别重要)。我想要格式为 R^2 = 的 R 平方,其中 R 为斜体,2 为上标。
以这种方式单独添加 R 平方可以在以下示例中使用 bquote 实现
DF <- data.frame(VAR1=rnorm(100), VAR2=rnorm(100))
with(DF, plot(VAR1, VAR2))
fit <- lm(VAR2 ~ VAR1, data=DF)
r2 <- summary(fit)$adj.r.squared
mylabel = bquote(italic(R)^2 == .(format(r2, digits = 2)))
legend("bottomright", legend = mylabel ) # display legend
添加 R 平方值和 n 可以通过以下方式实现(此处归功于 @DirkEddelbuettel How can I plot my R Squared value on my scatterplot using R?)
legend("topleft", legend = c( paste("R2 =", format(r2, digits = 2)),
paste("n = ", nrow(DF)) ) )
但是,我无法找到一种方法来修改它以格式化 R^2 以不粘贴调用。例如,
legend("topleft", legend = c( expression(paste(italic(R)^2, " = ", format(r2, digits = 2))),
paste("n = ", nrow(DF)) ) )
将成功格式化 R^2 但也会粘贴 format(r2, digits = 2)
这似乎应该是直截了当的,但我没有快乐。任何帮助将不胜感激,谢谢。
【问题讨论】:
-
请参阅 here 以了解此问题的可能副本和可行的答案。
-
感谢你们让我注意到这些解决方案。两者都按需要工作,尽管@JWilliman 提到的解决方案更简单,因此更可取。为了完整起见,该解决方案(@SvenHohenstein)是
legend("bottomright", c(as.expression(bquote(italic(R)^2 == .(format(r2, digits = 2)))), as.expression(paste("n =", nrow(DF)))))