【发布时间】:2016-05-18 21:47:14
【问题描述】:
我之前询问过这个问题(请参阅How to symbolize groups separately in a graph (R)),但无法让建议的代码工作。我想知道我是否可以在xyplot 中做我需要的事情。我使用了这段代码:
xyplot(y~x,groups=site,type=c("p","r"))
试图得到一条回归线,但它给了我一条分别穿过每个组的线。我想以不同的方式对组进行符号化,但它们组成了一个我想将行添加到的数据集。
我查看了Plotting xyplot with regression line on lattice graphics,但无法使面板功能正常工作(这很可能是我缺乏 R 经验)。
与面板函数相关的附带问题:如何在我的代码中插入换行符,它们是否必要(包括将花括号放在与函数不同的行上)?不同的面板功能是否需要以某种特定方式分开?
编辑:abline 会起作用吗?当我在xyplot 中绘制我的点后应用它时,它不会给出任何错误,但也不会绘制一条线。
数据集:
s x y
COB 0 2
COB 0 6
COB 0 4
COB 0 3
COB 0 3
COB 2 7
COB 2 8
COB 2 4
COB 2 13
COB 2 9
JP 9 9
JP 9 9
JP 9 14
JP 14 20
JP 14 18
JP 14 19
代码:
xyplot(y~x|site,data=D,panel=function{x,y,...){panel.xyplot(x,y,...)panel.abline(lm(y~x),col="red")})
我收到的错误:
Error: unexpected '{' in "xyplot(y~x|site,data=D,panel=function{"
新代码:
xyplot(y~x,groups=site,auto.key=list(columns=nlevels(Data$s)),panel=function(x,y,...){panel.xyplot(x,y,...);panel.abline(lm(y~x),col="red")},xlab="Years burned",ylab="Species per plot",main="Years burned vs. number of species",par.settings=list(superpose.symbol=list(pch=15,cex=2,col=c("blue,"green")))
错误:
Error: unexpected symbol in "s=nlevels(Data$s)),panel=function(x,y,...){panel.xyplot(x,y,...);panel.abline(lm(y~x),col="red")},xlab="Years burned",ylab="Species per plot",main="Years burned vs. number of species",par.sett"
谢谢。
【问题讨论】:
-
您的数据中没有“站点”。另外,不需要调理,需要
groups=。就像我的回答一样。
标签: r plot linear-regression