问题描述
我试图创建一条我追踪的两条鱼的散布图,以显示它们随时间的不同深度。我试图将它们从主数据帧中子集出来,但该图只显示了一个。
p1 <- ggplot(subset(Data.df,ID %in% c(Data.df$ID == "9","11")))
p1 <- p1 + geom_point(aes(dt,d,colour=as.factor(ID),shape=as.factor(ID)))
p1 <- p1 + scale_shape_manual(values=c(3,6))
p1 <- p1 + scale_color_manual(breaks = c("ID == 9","ID == 11"),values=c("red","blue"))
p1
下图是上面所产生的图形,但是您可以看到它仅显示了鱼11的结果。如何使它们同时显示。
解决方法
您的错误是您的子集。 Data.df$ID == "9"
创建一个长度为Data.df$ID
的逻辑向量,然后c(Data.df$ID == "9","11")
由于"ll"
将其强制为字符。因此,您的子集尝试匹配“ TRUE”,“ FALSE”或“ 11”,并且仅找到“ 11”。另外,您不需要breaks
的{{1}}参数。
scale_color_manual