如何在R上的ggplot中显示第二个变量

问题描述

我试图创建一条我追踪的两条鱼的散布图,以显示它们随时间的不同深度。我试图将它们从主数据帧中子集出来,但该图只显示一个

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的结果。如何使它们同时显示

enter image description here

解决方法

您的错误是您的子集。 Data.df$ID == "9" 创建一个长度为Data.df$ID的逻辑向量,然后c(Data.df$ID == "9","11")由于"ll"将其强制为字符。因此,您的子集尝试匹配“ TRUE”,“ FALSE”或“ 11”,并且仅找到“ 11”。另外,您不需要breaks的{​​{1}}参数。

scale_color_manual