绘制nls符合单个图中重叠的预测区间

时间:2015-10-23 15:05:10

标签: r graphics plot nls

我说一些数据d,我将nls模型拟合到数据的两个子集。

x<- seq(0,4,0.1)
y1<- (x*2 / (0.2 + x))
y1<- y1+rnorm(length(y1),0,0.2)
y2<- (x*3 / (0.2 + x))
y2<- y2+rnorm(length(y2),0,0.4)
d<-data.frame(x,y1,y2)

m.y1<-nls(y1~v*x/(k+x),start=list(v=1.9,k=0.19),data=d)
m.y2<-nls(y2~v*x/(k+x),start=list(v=2.9,k=0.19),data=d)
然后,我想在数据上绘制拟合模型回归线,并对预测间隔进行着色。我可以使用包investr执行此操作,并为每个子集单独绘制好的图:

require(investr)
plotFit(m.y1,interval="prediction",ylim=c(0,3.5),pch=19,col.pred='light blue',shade=T)

enter image description here

 plotFit(m.y2,interval="prediction",ylim=c(0,3.5),pch=19,col.pred='pink',shade=T)

enter image description here

但是,如果我将它们一起绘制,我就有问题了。第二个图的阴影覆盖了第一个图的点和阴影: enter image description here

1:如何确保第一个图上的点最终位于第二个图的阴影之上?

2:如何使阴影预测区间与新颜色重叠的区域(如紫色,或重叠的两种颜色的融合)?

1 个答案:

答案 0 :(得分:3)

使用/** * Created by obo on 15/10/23. */ public class CustomClass implements Parcelable { public String result = "this is my object"; public CustomClass(String result){this.result = result;}; protected CustomClass(Parcel in) { result = in.readString(); } public static final Creator<CustomClass> CREATOR = new Creator<CustomClass>() { @Override public CustomClass createFromParcel(Parcel in) { return new CustomClass(in); } @Override public CustomClass[] newArray(int size) { return new CustomClass[size]; } }; @Override public int describeContents() { return 0; } @Override public void writeToParcel(Parcel dest, int flags) { dest.writeString(result); } } 添加透明度,如下所示:

adjustcolor

根据您的需要,您可以使用两个透明度值(此处都设置为0.5)并且可能只使其中一个透明。

screenshot