Скажем, у меня есть данные, 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)
plotFit(m.y2,interval="prediction",ylim=c(0,3.5),pch=19,col.pred='pink',shade=T)
Однако, если я построю их вместе, у меня возникнет проблема. Затенение второго графика покрывает точки и затенение первого графика:
1: Как я могу убедиться, что точки на первом графике заканчиваются поверх затенения второго графика?
2: Как я могу сделать область, в которой затененные интервалы прогнозирования перекрываются, новым цветом (например, пурпурным или любым слиянием двух перекрывающихся цветов)?
points(y1 ~ x, data = d)
, По второму вопросу вам нужны полупрозрачные цвета, и я считаю, что они не поддерживаются на большинстве устройств. Вы можете повторно реализовать функциюplotFit
с помощью ggplot2, где вы можете просто указатьalpha = 0.3
. - person Roland   schedule 23.10.2015