我是一名学生,正在为学校开展一个项目,我所使用的示例代码有一条用于数据集的线性模型线(蓝色)。同时,当我用我的数据运行完全相同的代码时,它给了我两条蓝线,而不是我想要的一条对角线。我不知道我做错了什么/我的数据和示例数据集之间的区别是什么。任何帮助都将不胜感激!
示例代码:
drunkdoor <- read_csv("https://uoepsy.github.io/data/drunkdoor.csv")
head(drunkdoor)
ggplot(drunkdoor, aes(x=age, y=notice)) + geom_point()+geom_smooth(method = "lm", se = FALSE, fullrange = TRUE) + xlim(30, 80)
我的代码:
data1 <- read_csv('https://uoepsy.github.io/data/dapr2_2021_nullsit_data.csv')
head(data1)
ggplot(data1, aes(x = z_test, y = intervention1)) + geom_point() + geom_smoot(method = "lm)
答案 0 :(得分:0)
不同之处在于,在示例图中,当您使用字符值时,它们使用 y
的数值。一种解决方法是指定“组”值,以便 ggplot 知道哪些点集应该在同一条线上。如果您在 group=1
中使用 aes()
,它将知道将所有点组合在一起并绘制一条线(而不是为每个字符值绘制一条线)
ggplot(data1, aes(x = z_test, y = intervention1, group=1)) +
geom_point() +
geom_smooth(method = "lm")
或者,您可以将值更改为数值
ggplot(data1, aes(x = z_test, y = ifelse(intervention1=="control",0,1))) +
geom_point() +
geom_smooth(method = "lm")
请注意,这两行是不同的,因为它在 y 轴上以不同的顺序放置了值。您需要决定是要“控制”在顶部还是“控制”在底部。