Tôi có một danh sách với 9 vectơ khác nhau bên trong. Và tôi muốn vẽ chúng (dấu chấm) trong một hình với các màu khác nhau theo tên của chúng. Làm thế nào để làm điều đó trong ngôn ngữ R?Làm thế nào để vẽ một danh sách các vectơ có độ dài khác nhau?
5
A
Trả lời
12
Sử dụng một tạo thành Ví dụ:
# example data:
dat <- list(a=1:5,b=2:7,c=3:10)
# get plotting:
plot(unlist(dat),type="n",xlim=c(1,max(sapply(dat,length))))
mapply(lines,dat,col=seq_along(dat),lty=2)
legend("topleft",names(dat),lty=2,col=seq_along(dat))
9
Không nghi ngờ sẽ được hoàn thành mà không có một câu trả lời ggplot.
dat <- list(a=1:5,b=2:7,c=3:10)
dat <- lapply(dat, function(x) cbind(x = seq_along(x), y = x))
list.names <- names(dat)
lns <- sapply(dat, nrow)
dat <- as.data.frame(do.call("rbind", dat))
dat$group <- rep(list.names, lns)
library(ggplot2)
ggplot(dat, aes(x = x, y = y, colour = group)) +
theme_bw() +
geom_line(linetype = "dotted")
Để vẽ mỗi dòng trong một âm mưu riêng, sử dụng
ggplot(dat, aes(x = x, y = y, colour = group)) +
theme_bw() +
geom_line(linetype = "dotted") +
facet_wrap(~ group)
'dat $ nhóm <- đại diện (tên (dat), LNS) 'sẽ đảm bảo phù hợp với các tên trong nhóm của bạn. – thelatemail
@thelatemail chỉnh sửa câu trả lời của tôi. –
bạn có thể có mỗi nhóm trong cửa sổ cốt truyện của chính nó. như một âm mưu khía cạnh. – MySchizoBuddy