Fre*_*red 3 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))
Run Code Online (Sandbox Code Playgroud)
其中line1
和line2
是两个变量,比如身高和体重.
这是我想要的每个面板的简单样式(我还想更改点标记的大小,但不使用如何):
plot(df$line1[df$factor=="a"], type = "o", ylim=c(0,6))
lines(df$line2[df$factor=="a"], type = "o", lty=2, pch=0)
Run Code Online (Sandbox Code Playgroud)
当我尝试这个:
library(lattice)
xyplot(c(line1,line2)~index|factor,data=df,type="o")
Run Code Online (Sandbox Code Playgroud)
该程序将所有点视为属于一行.
此外,我不知道如何提供绘图样式的参数来获得所需的结果.
PS1.令人惊讶的是,我已经用Google搜索并发现了许多散点图(线性拟合,密度等)和格子图的直方图示例,但这不是我想要做的简单事情之一.
PS2.我想标记这个问题,trellis
但没有声誉点来创建标记.有志愿者吗?
答案其实很简单.而不是将line1和line2组合到一个向量,只需使用xyplot的扩展公式接口:
xyplot(line1+line2~index|factor,data=df,type="o")
Run Code Online (Sandbox Code Playgroud)
给出:
检查还?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)
Run Code Online (Sandbox Code Playgroud)
给: