首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何使用ggplot创建多面折线图?

如何使用ggplot创建多面折线图?
EN

Stack Overflow用户
提问于 2013-02-01 14:22:46
回答 2查看 14.2K关注 0票数 24

我有一个用下面的代码创建的数据框:

require(reshape2)
foo <- data.frame( abs( cbind(rnorm(3),rnorm(3, mean=.8),rnorm(3, mean=.9),rnorm(3, mean=1))))
qux <- data.frame( abs( cbind(rnorm(3),rnorm(3, mean=.3),rnorm(3, mean=.4),rnorm(1, mean=2))))
bar <- data.frame( abs( cbind(rnorm(3,mean=.4),rnorm(3, mean=.3),rnorm(3, mean=.9),rnorm(3, mean=1))))

colnames(foo) <- c("w","x","y","z")
colnames(qux) <- c("w","x","y","z")
colnames(bar) <- c("w","x","y","z")

rownames(foo) <- c("n","q","r")
rownames(qux) <- c("n","q","r")
rownames(bar) <- c("n","q","r")

foo <- cbind(ID=rownames(foo),foo)
bar <- cbind(ID=rownames(bar),qux)
qux <- cbind(ID=rownames(bar),qux)

foo$fn <- "foo"
qux$fn <- "qux"
bar$fn <- "bar"

alldf<-rbind(foo,qux,bar)
alldf.m <- melt(alldf)

我想要做的是以刻面格式创建一条ggplot线曲线,这样就可以创建如下图形:

实际的图表不包含向上的线-这只是一个草图,以便线分离是清晰的。

我当前的代码不能工作:

    library(ggplot2)
    p <- ggplot(data=alldf.m, aes(x=variable)) + 
           geom_line(aes(colour=ID),alpha=0.4)
    p <- p + facet_wrap( ~ fn)
    p

做这件事最好的方法是什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-02-01 14:28:32

试试这个:

ggplot(data=alldf.m, aes(x=variable, y = value, colour = ID, group = ID)) + 
  geom_line() + facet_wrap(~fn)

票数 18
EN

Stack Overflow用户

发布于 2013-02-01 14:45:02

即使它是OP需要的ggplot2,但我认为这个示例也适用于lattice

library(lattice)
xyplot(data=alldf.m, value~variable|fn, type ='b', groups = ID, auto.key = T)

使用latticeExtra,我们可以得到一些与ggplot2解决方案类似的东西:

 p <-  xyplot(data=alldf.m, value~variable|fn, type ='b', groups = ID, auto.key = T)
 update(p , par.settings = ggplot2like())

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14640872

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档