我是一个新的 R 用户,我正在尝试绘制 2 个连续变量和一个分类变量之间的交互。
使用interaction.plot:
interaction.plot(nonconform, trans, employdisc, type="b", col=(1:3) ,
leg.bty="o", leg.bg="beige", lwd=2, pch=c(18,24,22),
xlab="Nonconformity",
ylab="Discrimination",
main="Interaction Plot")
我得到这个结果:
当我尝试用 ggplot 做同样的事情时
ggplot(data=NTDS.zip, aes(x=nonconform, y=employdisc, colour = factor(trans), group=trans, )) +
stat_summary(fun.y=mean, geom="point") +
stat_summary(fun.y=mean, geom="line")
我得到这个结果:
有一条额外的线(灰色,我无法摆脱)。它可能代表丢失的数据,但还没有找到从图表中删除该线的方法。我发现的任何讨论都谈到了由于缺少数据而抑制警告,但没有涉及图表中的额外线条。
有什么想法吗?
更新
在阅读了 R Graphics Cookbook 之后,我尝试了另一种方法。
这本书的方法首先是对数据进行总结。
tg <- ddply(ntds.new, c("trans", "nonconform"), summarize, empdisc=mean(employdisc))
然后绘制图表。
我尝试了 2 种类型(颜色和线型)
ggplot(tg, aes(x=nonconform, y=empdisc, colour=trans))+geom_line()
ggplot(tg, aes(x=nonconform, y=empdisc, linetype=trans))+geom_line()
带有颜色语句的图有额外的线,而带有线型的图没有。
这方面的数据是:
trans nonconform empdisc
1 1 0 1.104046
2 1 1 1.472050
3 1 2 1.930070
4 1 3 2.247706
5 1 4 3.407407
6 1 NA 7.250000
7 2 0 3.427230
8 2 1 3.929707
9 2 2 4.062275
10 2 3 4.373853
11 2 4 4.470149
12 2 NA 5.294118
13 3 0 1.309524
14 3 1 1.968310
15 3 2 2.366589
16 3 3 3.815000
17 3 4 3.560606
18 3 NA 6.000000
19 4 0 2.661290
20 4 1 3.208861
21 4 2 3.033195
22 4 3 3.322176
23 4 4 3.755906
24 4 NA 6.625000
25 NA 0 4.000000
26 NA 1 4.166667
27 NA 2 2.500000
28 NA 3 6.666667
29 NA 4 5.400000
30 NA NA 2.000000
我回去删除了 (10) 行,其中包含 trans 或 nonconform 列的缺失案例。
trans nonconform empdisc
1 1 0 1.104046
2 1 1 1.472050
3 1 2 1.930070
4 1 3 2.247706
5 1 4 3.407407
6 2 0 3.427230
7 2 1 3.929707
8 2 2 4.062275
9 2 3 4.373853
10 2 4 4.470149
11 3 0 1.309524
12 3 1 1.968310
13 3 2 2.366589
14 3 3 3.815000
15 3 4 3.560606
16 4 0 2.661290
17 4 1 3.208861
18 4 2 3.033195
19 4 3 3.322176
20 4 4 3.755906
这解决了我最初的问题,但这个解决方案似乎比它应该的更复杂,我很好奇为什么带有“颜色”的情节受到影响,而带有“线型”的情节却没有。