我正在尝试为如下所示的数据设置多元回归模型的图:
subject iq condition RT
1 98 A 312
1 98 B 354
1 98 C 432
2 102 A 134
2 102 B 542
2 102 C 621
... ... ... ...
Run Code Online (Sandbox Code Playgroud)
等等。
我想在 x 轴上绘制 iq,在 y 轴上绘制 RT,并针对不同的条件使用具有不同线型(虚线、虚线,例如)的不同颜色的线。
到目前为止,我的代码如下所示:
ggplot(DFplotlong, aes(iq, RT, colour = condition))
+ geom_smooth(method = lm, fullrange = TRUE, alpha = .15)
+ theme_bw()
+ labs(x = "iq", y = "reaction times")
+ scale_colour_manual(values=c("#999999","#000000"), name="condition", breaks=c("A", "B", "C"), labels = c("easy", "medium", "hard"))
Run Code Online (Sandbox Code Playgroud)
现在,另外我想我需要以某种方式设置线型,但我不知道是否使用 scale_linetype_manual、scale_linetype_discrete 或其他什么。另外,我不知道如何使用正确的功能。
有人可以帮我解决这个问题吗?那样就好了!
Ps:我尝试了各种方法,但是 R 给了我一个按预期指定颜色的图,但线型没有改变,但保持稳定,或者它给了我错误消息,例如
Fehler in grid.Call.graphics(L_polygon, x$x, x$y, index) :
ungültiger Linientyp: muss Länge 2, 4, 6, oder 8 haben
Run Code Online (Sandbox Code Playgroud)
我猜用英语应该是这样的
Error in grid.Call.graphics(L_polygon, x$x, x$y, index) :
invalid linetype: must be length 2, 4, 6, or 8
Run Code Online (Sandbox Code Playgroud)
似乎您所缺少的只是争论的linetype = condition内部aes()。此外,您的scale_colour_manual调用似乎是错误的:您只给出了两个值而不是三个值。要获得正确的比例,您可以使用scale_linetype_discrete()自动缩放或scale_linetype_manual()手动设置线型。这是示例:
#
DFplotlong <- read.table(text='subject iq condition RT
1 98 A 312
1 98 B 354
1 98 C 432
2 102 A 134
2 102 B 542
2 102 C 621', header=TRUE)
#
ggplot(DFplotlong, aes(iq, RT, colour = condition, linetype = condition)) +
geom_point() +
geom_smooth(method = lm, fullrange = TRUE, alpha = .15) +
theme_bw() +
labs(x = "iq", y = "reaction times") +
scale_colour_manual(values=c("#999999","#000000", "#900009"),
name="condition",
breaks=c("A", "B", "C"),
labels = c("easy", "medium", "hard")) +
scale_linetype_discrete(name="condition",
breaks=c("A", "B", "C"),
labels = c("easy", "medium", "hard"))
Run Code Online (Sandbox Code Playgroud)

| 归档时间: |
|
| 查看次数: |
15507 次 |
| 最近记录: |