我正在尝试为每个主题(在此示例中为“ A”,“ B”或“ C”)制作具有不同颜色图的ecdf图(经验累积分布函数)。 在此示例中,X轴描述了RT(响应时间),Y轴描述了rt观测值的累积比例。 通过使用ggplot2和ecdf函数,我设法以不同的离散颜色为每个主题绘制了每个主题的ecdf图。当我想基于完全不同的变量(这里称为“ color_factor”)连续给对象的图连续着色时,问题就开始了。该变量对于每个对象都是不同的并且是连续的。
这是我的简化示例:
set.seed(125)
dat <- data.frame(
subject = c(rep(c("A"), 10), rep(c("B"), 10), rep(c("C"), 10)),
color_factor = c(rep(0.3, 10), rep(0.6,10), rep(0.9,10)),
rt = sample(1:50, 30, replace =T)
)
dat <- arrange(dat,color_factor,rt)
dat.ecdf <- ddply(dat, .(color_factor), transform, ecdf=ecdf(rt)(rt) )
p <- ggplot( dat.ecdf, aes(rt, ecdf, colour = subject)) + geom_line()
p2 <- ggplot( dat.ecdf, aes(rt, ecdf, colour = color_factor)) + geom_line()
初始数据如下:
但是,当我尝试使用color_factor变量为绘图着色时,它只会为所有主题绘制一个绘图,而没有按预期方式为其着色。
我打算做的是该图将看起来与图p相似,但绘图颜色除外,例如将其着色为:主题A-浅蓝色,主题B-蓝色和主题C-深色。蓝色,对应于每个主题的color_factor变量。
任何人都知道我该怎么办?任何帮助将不胜感激!
非常感谢
Yuval
答案 0 :(得分:0)
尝试以下任一选项:
library(plyr)
library(ggplot2)
#Data
set.seed(125)
dat <- data.frame(
subject = c(rep(c("A"), 10), rep(c("B"), 10), rep(c("C"), 10)),
color_factor = c(rep(0.3, 10), rep(0.6,10), rep(0.9,10)),
rt = sample(1:50, 30, replace =T)
)
#Transform
dat <- arrange(dat,color_factor,rt)
dat.ecdf <- ddply(dat, .(color_factor), transform, ecdf=ecdf(rt)(rt) )
#Plot 1
ggplot( dat.ecdf, aes(rt, ecdf, colour = subject,group=1)) + geom_line()+
scale_color_manual(values = c('lightblue','blue','darkblue'))
输出:
或者这个:
#Plot 2
ggplot( dat.ecdf, aes(rt, ecdf, colour = factor(color_factor),group=subject)) + geom_line()+
scale_color_manual(values = c('lightblue','blue','darkblue'))+
labs(color='Factor')
输出:
或者这个:
#Plot 3
ggplot( dat.ecdf, aes(rt, ecdf, colour = subject,group=subject)) + geom_line()+
scale_color_manual(values = c('lightblue','blue','darkblue'))+
labs(color='Subject')
输出:
答案 1 :(得分:0)