ggplot2中因子之间的连接线
我试图创建一个简单的手段和交互线图。我在y轴上有一个DV(读取次数),在x轴上有一个因子(长度),另一个作为分组变量(位置)。ggplot2中因子之间的连接线
我使用的语法如下。将数据绘制为两条长度条件中的每一条的一条线上的单个点,但未连接两条长度条件之间的线。我在语法方面缺少什么?
我使用R i386 2.15.2,并在上周更新了ggplot2。
这里是一个重复的例子,
SubjectID <- c(101,101,101,101,101,101,101,101,102,102,102,102,102,102,102,102,
201,201,201,201,201,201,201,201,202,202,202,202,202,202,202,202)
Group <- c("PWA","PWA","PWA","PWA","PWA","PWA","PWA","PWA","PWA","PWA","PWA",
"PWA","PWA","PWA","PWA","PWA","Control","Control","Control",
"Control","Control","Control","Control","Control","Control",
"Control","Control","Control","Control","Control","Control",
"Control")
Length <- c(1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2)
Pos <- c(1,1,2,2,1,1,2,2,1,1,2,2,1,1,2,2,1,1,2,2,1,1,2,2,1,1,2,2,1,1,2,2)
ReadT <- c(6.7,7.6,6.4,7.9,5.4,6.4,6.3,7.4,6.9,7.2,6.7,7.4,5.7,6.1,6.5,7.8,
6.1,5.7,4.9,6.1,4.7,6.5,6.1,6.2,6.9,5.9,4.8,6.5,4.6,6.3,6.7,6.6)
data <- data.frame (SubjectID, Group,Length,Pos,ReadT)
data$Length <- factor(data$Length, order = TRUE,
levels = c(1,2),
labels = c("Length 1", "Length 2"))
data$Pos <- factor(data$Pos, order = TRUE,
levels = c(1,2),
labels = c("Position 1", "Position 2"))
qplot(Length, data=data, ReadT, geom=c("point", "line"),
stat="summary", fun.y=mean, group=Pos, colour=Pos,
facets = ~Group)
我不认为你已经转载任何不一致之处,但在部分你的问题,试图凝聚一切成单qplot
呼叫蒙上阴影。
你x
变量Length
是一个因素,因此ggplot
是理智考虑Length 1
和Length 2
是独立的,并不会连接线。其次,您将无法使用stat_summary
来总结您的x
值,而不会强迫这些因素成为因素(因此也是无关因素)。
我发现最简单的数据预处理并不依赖于ggplot。
如
library(plyr)
data.means <- ddply(data, .(Group, Pos, Length), summarize, ReadT = mean(ReadT))
然后构建使用ggplot
没有qplot
,给你所需的灵活性(和透明度)的情节。
的技巧,以获得线路连接是考虑x
数字呼叫内geom_line
看here例如
ggplot(data.means, aes(x= Length, y= ReadT, colour = Pos)) +
geom_point() +
geom_line(aes(x=as.numeric(Length))) +
facet_grid(~Group)
如果你坚持使用的原始数据,并stat_xxxx
功能,你可以也使用stat_smooth
来重复此操作以估计平均值(其将x
分类为数字)
ggplot(data, aes(x = Length, y= ReadT, colour = Pos)) +
stat_summary(fun.y = 'mean', geom = 'point')+
stat_smooth(method = 'lm', aes(x=as.numeric(Length)), se = FALSE) +
facet_grid(~Group)
绝对正确,我一直无法复制它的一次工作 - 这仍然是一个谜。我已经从标题和问题中编辑了这部分内容。感谢您提供非常有帮助的意见!我还看到另一篇文章解决了同样的问题(我之前错过了),指出了另一个可能对此有帮助的软件包 - 请参阅:ggplot2:连接分组数据手段的行 – user2112401 2013-02-27 02:09:19
在第一个ggplot代码中需要有3圆括号mafter ..数字(长度 – user2112401 2013-02-27 02:46:31
确实,...固定。 – mnel 2013-02-27 02:48:04
请提供[可重现的示例](http://*.com/questions/5963269/how-to-make-a-great-r-reproducible-example) - 添加示例数据,最好使用dput() – 2013-02-26 18:59:04