(如果您包含示例数据,您总会得到更好的答案,但我会在黑暗中试一试)
由于您想绘制两个相同的变量,因此在data.frame
将数据输入 ggplot 之前重塑数据可能是最简单的:
library(reshape2)
# Melting data gives you exactly one observation per row - ggplot likes that
dat.melt <- melt(dat,
id.var = c("spp", "ped.length"),
measure.var = c("seeds.inflorstem", "seeds.filled")
)
# Plotting is slightly different - instead of explicitly naming each variable,
# you'll refer to "variable" and "value"
ggplot(dat.melt, aes(x = ped.length, y = value, color = variable)) +
geom_point(size=2) +
theme_bw() +
facet_wrap(~spp, scales = "free_y")
这些seeds.filled
值应仅绘制在相应物种的方面。
我更喜欢 Drew 的(完全有效的)显式映射不同层的方法,因为无论您有两个变量还是 20 个变量,您只需要一个geom_point()
,并且很容易将各种美学映射到variable
.