ggplot2 中的线性回归

Linear Regression in ggplot2

首先是我的数据:

dput(df_TB_d[1:10,])

structure(list(Name = c("Baden-Württemberg", "Bayern", "Berlin",
"Brandenburg", "Bremen", "Hamburg", "Hessen", "Mecklenburg-Vorpommern",
"Niedersachsen", "Nordrhein-Westfalen"), Land = c("BW", "BY",
"BE", "BB", "HB", "HH", "HE", "MV", "NI", "NW"), Studierende = c(331424,
348590, 142923, 50800, 32522, 72500, 211539, 39738, 183916, 643135
), Bevoelkerung = c(10879618, 12843514, 3520031, 2484826, 671489,
1787408, 6176172, 1612362, 7926599, 17865516), Grundmittel = c(3065086400,
3145532700, 1370039300, 285097600, 216487680, 605016000, 2054458300,
463440300, 2051042000, 6165363300), Ausg_stud = c(9248.23307907695,
9023.58845635273, 9585.85602037461, 5612.15748031496, 6656.65334235287,
8345.04827586207, 9711.95996955644, 11662.3961950778, 11152.0585484678,
9586.42166885646)), row.names = c(NA, 10L), class = "data.frame")

我需要绘制一个如下所示的图表: https://www.learnbyexample.org/r-scatter-plot-base-graph/

x 轴为“Bevoelkerung”,y 轴为“Studierende”。

我使用 ggplot2,因为我需要典型的灰色背景。

到目前为止我的命令:

ggplot()+
 geom_point(data=df_TB_d,
            mapping = aes(x=Bevoelkerung, y=Studierende))

我的问题:我不能进行线性回归。当然,我搜索了该命令,但每当我执行它时(我尝试了很多方法),我都会收到错误消息:

non-numeric argument to binary operator

谁能告诉我我哪里做错了?

还有:我需要把点转换成联邦州的缩写,例如,代表柏林的点不再是点,而是柏林的“BE”。

非常感谢您的宝贵时间和帮助

您可以对回归线使用 geom_smooth,对标签使用 geom_text

ggplot(df_TB_d, aes(x=Bevoelkerung, y=Studierende)) +
  geom_text(aes(label = Land)) + 
  geom_smooth(method = "lm", se = FALSE)

结果: