position_dodge按颜色但不是pch与ggplot2中的geom_point

时间:2013-11-28 15:48:04

标签: r ggplot2

我有以下数据

df = data.frame(names = c(rep('var1',time=6),rep('var2',time=6)),
                dat = rnorm(n=12,sd=1:3),
                type=c(rep(c('mod1','mod2','mod3'),time=2)),
                length=c('1','1','2','1','3','3'))

我希望每种类型都有不同的颜色,每种长度都需要不同的符号,这可以使用ggplot2来完成:

ggplot(df,aes(x=names,y=dat,pch=length,colour=type)) +
          geom_point()

enter image description here

然而,我希望他们被颜色/类型“躲避”,而不是按照pch / length来“躲闪”,如果我这样做会发生这种情况

ggplot(df,aes(x=names,y=dat,pch=length,colour=type)) +
         geom_point(position=position_dodge(width=0.6))

enter image description here

我找不到一个允许我指定position_dodge只应用于颜色而不是pch的命令。有什么提示吗?

1 个答案:

答案 0 :(得分:1)

我认为这就是你想要的......

ggplot(df,aes(x=names,y=dat,group=type)) +
       geom_point(aes(colour=type,pch=length),position=position_dodge(width=0.6))

使用您的df给出:

enter image description here