我正在尝试使用geom_text绘制一些多面散点图的回归信息。具体来说,我想显示的信息是:R2,p值和回归方程。我希望他们每个人都分开一行。由于遇到两个问题,我无法成功执行此操作:
- 我需要在
parse = TRUE
中设置geom_text
,以便正确显示 R ^ 2 上标。但是,这样做时,不显示换行符之后的字符。如果parse = FALSE
不会发生,但是上标需要它。是什么导致这种行为?我该如何解决? - 对于表示为
y = b + ax
的回归方程式,我得到一个意外的符号错误,它指向方程式末尾的 x 。例如,对于下面显示的MWE,将返回以下错误:
解析错误(text = text [[i]]):: 3:42:意外符号
2:p == 1.4898364962951e-12
3:y == 8.28390564178717 + 0.165567574644319x
^
为什么在数字末尾添加字符会出现此错误?在数字和 x 之间添加空格并不能解决问题。同样,设置parse = FALSE
可以避免此问题。我显然缺少有关parse
的工作方式的信息。
MWE:
# Load data
cars.df <- cars
# Fit linear regression model:
fit <- lm(data = cars.df,speed ~ dist)
# Create a new dataframe to plot regression information with geom_text:
fit.labs <- data.frame(x = 100,y = 12,lab = paste0("R^2 == ",summary(fit)$r.squared,"\np == ",summary(fit)$coefficients[8]))
library(ggplot2)
# Plot data + regression line + label
ggplot() +
geom_point(data = cars.df,aes(x = dist,y = speed)) +
geom_abline(slope = summary(fit)$coefficients[2],intercept = summary(fit)$coefficients[1]) +
geom_label(data = fit.labs,aes(x = x,y = y,label = lab),parse = TRUE)
# Characters after the newline are not displayed. It does not happen if parse is set to FALSE.
# New df to add regression equation:
fit.labs2 <- data.frame(x = 100,summary(fit)$coefficients[8],"\ny == ",summary(fit)$coefficients[1]," + ",summary(fit)$coefficients[2],"x"))
ggplot() +
geom_point(data = cars.df,intercept = summary(fit)$coefficients[1]) +
geom_text(data = fit.labs2,parse = TRUE)