gpt4 book ai didi

r - 在 geom_smooth、ggplot2 中设置不同的线型

转载 作者:行者123 更新时间:2023-12-04 02:04:23 28 4
gpt4 key购买 nike

我正在尝试为如下所示的数据设置多元回归模型图:

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
... ... ... ...

等等。

我想在 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"))

现在,另外我想我不知何故需要设置线型,但我不知道是否使用 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

我猜英文应该是这样的

Error in grid.Call.graphics(L_polygon, x$x, x$y, index) :
invalid linetype: must be length 2, 4, 6, or 8

最佳答案

您似乎只缺少 aes() 参数中的 linetype = condition。此外,您的 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"))

enter image description here

关于r - 在 geom_smooth、ggplot2 中设置不同的线型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27251118/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com