无法在 R 中的 ggplot 上绘制多条 lm 线

Unable to Plot Multiple lm Lines on ggplot in R

我正在尝试在 ggplot 上绘制多条 lm 线,但似乎连一条线都没有出现在上面。我无法理解它的正面或反面。我想绘制每条 lm 线 - 代表分类字段中的 'medium'、'high' 和 'low' - 但甚至没有出现单个线。有人可以指导我做错什么吗?

我已经尝试使用 geom_smooth() 和 stat_smooth() 函数以及每个函数的方法公式的不同定义,例如 (method = "lm", formula =变量~值)但无济于事。

data1B = data.frame(B_1=c(561.5806, 585.9286, 597.4839), B_2=c(780.5758, 
800.8750, 754.8788), B_3=c(767.4545, 771.6250, 778.6471), B_4=c(868.3448, 
1062.4000, 1184.4242), data.SWASH_group=c("low", "medium", "low"))

library(dplyr)
library(reshape2)

library(ggplot2)

d <- melt(data1B, id.vars="data.SWASH_group")
View(d)

# Everything on the same plot
ggplot(d, aes(variable, value, col=variable)) + geom_smooth(method="lm")+
geom_point(aes(col=data.SWASH_group, size=2)) +  
stat_smooth()

我得到的结果如下:

我想要达到的结果看起来像这样:

注意:输出更密集,因为它有更多数据点要绘制,而不是我在示例中提供的用于娱乐目的的稀疏数据点。此外,图中的每条 lm 线代表一种类型的分类变量,例如 'high' 和 'low' 更具体地说。

确保变量(低和中)被识别为组

ggplot(d, aes(variable, value, col=variable, group=as.factor(variable)) +
geom_point(aes(col=data.SWASH_group, size=2)) +  
stat_smooth()