8

我有一个列表,里面有 9 个不同的向量。我想将它们(点线)绘制在一个图中,用它们的名字用不同的颜色绘制。如何用 R 语言做到这一点?

4

2 回答 2

16

使用一个虚构的例子:

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

在此处输入图像描述

于 2013-08-12T05:14:54.220 回答
12

如果没有 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")

在此处输入图像描述

要在单独的图中绘制每条线,请使用

ggplot(dat, aes(x = x, y = y, colour = group)) +
    theme_bw() +
    geom_line(linetype = "dotted") +
    facet_wrap(~ group)
于 2013-08-12T06:22:57.400 回答