我试图在ggplot上绘制多条lm线,但似乎没有出现。我不能做它的正面或反面。我想绘制每条lm线-代表类别字段中的“中”,“高”和“低”,但没有一个出现。有人可以指导我做错什么吗?
我已经尝试过使用geom_smooth()和stat_smooth()函数,以及每个函数的方法公式的不同定义,例如(method =“ lm”,Formula = variable〜value),但无济于事。
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线代表一种类型的分类变量,例如在这里更具体地表示“高”和“低”。
答案 0 :(得分:0)
确保变量(低和中)被识别为组
ggplot(d, aes(variable, value, col=variable, group=as.factor(variable)) +
geom_point(aes(col=data.SWASH_group, size=2)) +
stat_smooth()