使用 abline 向散点图中的每组点添加线性回归线时出现编码错误
coding error when using abline to add linear regression lines to each set of points in a scatterplot
我需要一些帮助:
- 将正确的 "best fit line",也就是
abline
添加到我的情节中
我有一个名为 "Control" 的二级因子变量,在 "consumption_mean"
列中有相应的数据点
我在这里绘制了两个,但是尝试添加一个 abline
并且它根本没有产生我正在寻找的结果(甚至 col=
似乎也不起作用。我将其设置为红色,它会产生黑色。
非常感谢任何帮助
我想要一条通过红色数据点的红色回归线(当 Control==1 时),以及一条通过黑色数据点的黑色回归线(当 Control==0 时)
df_mean <- read.table("https://pastebin.com/raw/C2dz6bDT", header = T)
df_mean$Control <- as.factor(df_mean$Control)
plot(df_mean$mean_consumption~df_mean$day, type="n")
points(df_mean$day[df_mean$Control=='1'],df_mean$mean_consumption[df_mean$Control=='1'],col='red',pch=15,cex=.8)
points(df_mean$day[df_mean$Control=='0'],df_mean$mean_consumption[df_mean$Control=='0'],col='black',pch=15,cex=.8)
abline(lm(df_mean$mean_consumption~df_mean$day+(df_mean$Control=='1'),lwd=1,lty=1,col="red"))
abline(lm(df_mean$mean_consumption~df_mean$day+(df_mean$Control=='0'),lwd=1,lty=1,col="black"))
请注意,不仅线 不是 红色,而且设置为 Control==1 的第一个回归实际上根本不适合红点。
这里有几件事,
1) 您的行没有变红,因为您将 col
和其他参数放入 lm
而不是 abline
这可以通过移动其中一个括号来解决.
abline(lm(df_mean$mean_consumption~df_mean$day+(df_mean$Control=='1')),lwd=1,lty=1,col="red")
2) 您的线条和数据点未对齐,因为您使用不同的 'formulas' 来绘制它们。您的代码应类似于:
plot(x,y)
abline(lm(y ~ x))
对于你的情况,
x
= df_mean$day[df_mean$Control=='1']
;和
y
= df_mean$mean_consumption[df_mean$Control=='1']
所以你的 abline
应该是
abline(lm(df_mean$mean_consumption[df_mean$Control=='1']~df_mean$day[df_mean$Control=='1']),lwd=1,lty=1,col="red")
解决所有问题后,您将获得想要的剧情:
我需要一些帮助:
- 将正确的 "best fit line",也就是
abline
添加到我的情节中
我有一个名为 "Control" 的二级因子变量,在 "consumption_mean"
列中有相应的数据点我在这里绘制了两个,但是尝试添加一个 abline
并且它根本没有产生我正在寻找的结果(甚至 col=
似乎也不起作用。我将其设置为红色,它会产生黑色。
非常感谢任何帮助
我想要一条通过红色数据点的红色回归线(当 Control==1 时),以及一条通过黑色数据点的黑色回归线(当 Control==0 时)
df_mean <- read.table("https://pastebin.com/raw/C2dz6bDT", header = T)
df_mean$Control <- as.factor(df_mean$Control)
plot(df_mean$mean_consumption~df_mean$day, type="n")
points(df_mean$day[df_mean$Control=='1'],df_mean$mean_consumption[df_mean$Control=='1'],col='red',pch=15,cex=.8)
points(df_mean$day[df_mean$Control=='0'],df_mean$mean_consumption[df_mean$Control=='0'],col='black',pch=15,cex=.8)
abline(lm(df_mean$mean_consumption~df_mean$day+(df_mean$Control=='1'),lwd=1,lty=1,col="red"))
abline(lm(df_mean$mean_consumption~df_mean$day+(df_mean$Control=='0'),lwd=1,lty=1,col="black"))
请注意,不仅线 不是 红色,而且设置为 Control==1 的第一个回归实际上根本不适合红点。
这里有几件事,
1) 您的行没有变红,因为您将 col
和其他参数放入 lm
而不是 abline
这可以通过移动其中一个括号来解决.
abline(lm(df_mean$mean_consumption~df_mean$day+(df_mean$Control=='1')),lwd=1,lty=1,col="red")
2) 您的线条和数据点未对齐,因为您使用不同的 'formulas' 来绘制它们。您的代码应类似于:
plot(x,y)
abline(lm(y ~ x))
对于你的情况,
x
= df_mean$day[df_mean$Control=='1']
;和
y
= df_mean$mean_consumption[df_mean$Control=='1']
所以你的 abline
应该是
abline(lm(df_mean$mean_consumption[df_mean$Control=='1']~df_mean$day[df_mean$Control=='1']),lwd=1,lty=1,col="red")
解决所有问题后,您将获得想要的剧情: