r - 如何在格子图中按因子绘制两条线?

标签 r ggplot2 lattice trellis

定义:

df <- data.frame(
        line1 = rep(seq(1,5,by=1),2), 
        line2 = rep(seq(2,6,by=1),2),
        index = rep(seq(1,5,by=1),2),
        factor=rep(c("a","b"),each=5))

其中 line1line2 是两个变量,比如高度和体重。

这是我想要的每个面板的简单样式(我也想更改点标记的大小,但不使用方式):

plot(df$line1[df$factor=="a"], type = "o", ylim=c(0,6))
lines(df$line2[df$factor=="a"], type = "o", lty=2, pch=0)

当我尝试这个时:

library(lattice)
xyplot(c(line1,line2)~index|factor,data=df,type="o")

程序将所有点视为属于同一行。

此外,我不确定如何输入绘图样式的参数以获得所需的结果。

PS1。令人惊讶的是,我搜索了很多散点图(具有线性拟合、密度等)和格子图的直方图示例,但这不是我想做的简单事情之一。

PS2。我想标记这个问题 trellis 但没有声誉点来创建标记。有志愿者吗?

最佳答案

答案其实很简单。不用将 line1 和 line2 组合成一个向量,只需使用 xyplot 的扩展公式接口(interface)即可:

xyplot(line1+line2~index|factor,data=df,type="o")

给:

enter image description here

还要检查 ?xyplot 阅读大量文本并在其中的示例中进行一些尝试。您将了解如何使用标题、图例等自定义它。

正如您标记的 ggplot2 一样,这是使用该包完成它的一种可能性:

require(ggplot2)
require(reshape)
df2 <- melt(df,id=c("index","factor"))

qplot(index,value,variable,facets = .~factor ,
          data=df2,geom="line",colour=variable)

给:

enter image description here

关于r - 如何在格子图中按因子绘制两条线?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6858877/

相关文章:

r - 如何摆脱ggplot geom_hex中的边界线

r - R中的现金流量图?

r - geom_violin 重叠图

r - 更改 R 中函数的默认参数

r - 条板格子

r - 为什么 name(x)<-y 和 "names<-"(x,y) 不等价?

r - 将 NA 值传递给原始和返回

r - 在R中用多边形提取点

r - 分面面板中的下降符侵入面板背景

r - 任意重新排序 R 中的直方图列