Вставить легенду в сюжет, связанный с факторами - PullRequest
1 голос
/ 14 марта 2019

У меня есть plot(x,y), связанный с двумя другими факторами z и t.Есть три levels в z и два уровня в t.Как правильно использовать функцию legend для вставки legend, чтобы задать три уровня z с t1, например z1t1, z2t1, z3t1, и три уровня z с t2, например z1t2, z2t2, z3t2?Другими словами, легенды должны показать в общей сложности шесть.

with(df, plot(x, y, 
                 pch = as.numeric(as.factor(paste(z,t))), 
                 col = as.numeric(as.factor(paste(z, t)))))

1 Ответ

2 голосов
/ 14 марта 2019

Это похоже на то, что вы ищете.

ОБНОВЛЕНИЕ: факторы в легенде теперь отсортированы.

#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)))


Надеюсь, это поможет.

enter image description here

...