我一直在尝试诸如ggmisc
软件包之类的不同建议,但似乎没有任何一项对我有利。
我正在使用iris
数据框,只是试图绘制随机变量:
modellm <- lm(`Sepal.Length` ~ `Sepal.Width` + `Petal.Length` + `Petal.Width`, data = iris)
model <- coef(Modellm)["(Intercept)"] +
coef(Modellm)["Sepal.Width"] * iris$`Sepal.Width` +
coef(Modellm)["Petal.Length"] * iris$`Petal.Length` +
coef(Modellm)["Petal.Width"] * iris$`Petal.Width` +
residuals(Modellm)
library(ggplot2)
ggplot(iris, aes(`Sepal.Length`, model))+
geom_point(size=2, alpha=0.2)+
geom_smooth(method='lm')
我怎么可能在ggplot中获得R平方值?
答案 0 :(得分:2)
如果要显示r平方值,只需将其添加到绘图的末尾即可:
+ annotate("text", x = 1, y = 1, label = paste0("R Squared = ", summary(modellm)$r.squared))
使用x和y坐标调整展示位置
答案 1 :(得分:1)
如果您真的想 绘制 R ^ 2,则可以执行以下操作。
library(ggplot2)
p <- ggplot(iris, aes(`Sepal.Length`, model))+
geom_point(size=2, alpha=0.2)+
geom_smooth(method='lm')
r2 <- summary(Modellm)$r.squared
p + scale_y_continuous(
sec.axis=sec_axis(~ . * 4 / 30 , name = expression(paste(R^{2})))) +
geom_rect(xmin=7.9, xmax=8, ymin=0, ymax=1*30/4,
fill="white", color="#78B17E") +
geom_rect(xmin=7.9, xmax=8, ymin=0, ymax=r2*30/4, fill="#78B17E") +
annotate("text", x = 7.95, y = 7.62, size=3, color="#78B17E",
label = paste0(round(r2, 2)))
产量