子集和ggplot2

我有一个问题,用ggplot2绘制一个数据框的子集。 我的DF如下所示:

ID Value1 Value2
P1 100 12
P1 120 13
...
P2 300 11
P2 400 16
...
P3 130 15
P3 140 12
...

现在我怎么能仅为ID P1和P3绘制Value1与Value2? 例如,我尝试过:

ggplot(subset(df,ID=="P1 & P3") + geom_line(aes(Value1, Value2, group=ID, colour=ID)))

但我总是收到一个错误。

PS我也试过很多与P1和P3的组合,但我总是失败..


这里有两个子集选项:

使用来自基础R的subset

library(ggplot2)
ggplot(subset(dat,ID %in% c("P1" , "P3"))) + 
         geom_line(aes(Value1, Value2, group=ID, colour=ID))

使用subset的参数geom_line (请注意我用的plyr包使用专用的.功能)。

library(plyr)
ggplot(data=dat)+ 
  geom_line(aes(Value1, Value2, group=ID, colour=ID),
                ,subset = .(ID %in% c("P1" , "P3")))

您也可以使用补充子集:

subset(dat,ID != "P2")

你在寻找下面的情节:

library(ggplot2) 
l<-df[df$ID %in% c("P1","P3"),]
myplot<-ggplot(l)+geom_line(aes(Value1, Value2, group=ID, colour=ID))

在这里输入图像描述


还有另一种解决方案,我觉得很有用,特别是当我想绘制同一对象的多个子集时:

myplot<-ggplot(df)+geom_line(aes(Value1, Value2, group=ID, colour=ID))
myplot %+% subset(df, ID %in% c("P1","P3"))
myplot %+% subset(df, ID %in% c("P2"))
链接地址: http://www.djcxy.com/p/86155.html

上一篇: Subset and ggplot2

下一篇: control series line colors and