我有一个plot(x,y)
与另外两个因素z
和t
相关联。 levels
中有三个z
,而t
中有两个级别。如何正确使用legend
函数插入legend
来给出t1的z的三个级别,例如z1t1,z2t1,z3t1和t2的z的三个级别,例如z1t2,z2t2,z3t2 ?换句话说,图例应该总共显示六个。
with(df, plot(x, y,
pch = as.numeric(as.factor(paste(z,t))),
col = as.numeric(as.factor(paste(z, t)))))
答案 0 :(得分:2)
这看起来像您要找的东西。
更新:现在对图例中的因素进行了排序。
#creating test data
x <- rnorm(20)
y <- x + runif(20)
dat <- data.frame("x" = x, "y" = y,
z = sample(c("z1", "z2", "z3"), 20, replace = TRUE),
t = sample(c("t1", "t2"), 20, replace = TRUE))
#it's quicker to do the pasting outside
dat$zt <- as.numeric(as.factor(paste(dat$z,dat$t)))
with(dat, plot(x, y,
pch = zt,
col = zt))
with(dat, legend(x = "bottomright",
legend = sort(unique(paste(z,t))),
pch = unique(zt),
col = unique(zt)))
希望有帮助。