首页 > 解决方案 > 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”。

非常感谢您的时间和帮助

标签: rggplot2plotlinear-regressionscatter-plot

解决方案


您可以使用geom_smooth回归线和geom_text标签。

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

结果:

在此处输入图像描述


推荐阅读