2016-03-30 1 views
0

Я не мог понять, как добавить правильный ключ к приведенному ниже графику. Пожалуйста помоги. Ключ должен иметь текст c("Totalcatch","Effort","Catchrate") следует линии соответствующего цвета (для Усилий и Catchrate) и соответствующего PCH (прямоугольник для totalcatch, 15 и 16 для двух других переменных.)Нужна помощь в построении ключа doubleJasale

library(latticeExtra) 
Catchrate<-c(0.05, 0.18, 0.25, 0.31, 0.32, 0.34, 0.35) 
totalcatch<-c(20, 30, 20, 30, 40, 50, 60) 
Effort<-c(0, 1000, 2000, 3000, 4000, 5000, 6000) 
year<-(2009:2015) 
p1=barchart(totalcatch~as.factor(year),horizontal=FALSE,ylim=c(0,70),xlim=c(0,7.5),scales=list(y=list(axs="i"),x=list(at=1:7,labels=year))) 
p2=xyplot(Effort~as.factor(year),type="b",col=2,scales=list(y=list(axs="i",draw=TRUE)),pch=15,par.settings=simpleTheme(col=2),ylab=list(label="Effort",col=2)) 
p3=xyplot(Catchrate~as.factor(year),type="b",pch=16,col=1,scales=list(y=list(draw=FALSE,axs="i",limit=c(0,0.4))))+layer(panel.axis(side="left",half=FALSE,tck=1,ticks=TRUE,at=seq(0.05,0.35,by=0.05),label=seq(0.05,0.35,by=0.05),line.col=1,text.col=1)) 
doubleYScale(doubleYScale(p1,p2,add.ylab2=TRUE,style2=4),p3)+layer(panel.text(0.8,40,label="Catchrate",srt=90)) 

Если вы могли бы упростить мой код в процессе, это также будет здорово.

ответ

0

Это, похоже, работает в определенной степени. Но если у кого-то есть более простое решение, напишите.

library(latticeExtra) 
Catchrate<-c(0.05, 0.18, 0.25, 0.31, 0.32, 0.34, 0.35) 
totalcatch<-c(20, 30, 20, 30, 40, 50, 60) 
Effort<-c(0, 1000, 2000, 3000, 4000, 5000, 6000) 
year<-(2009:2015) 
key=list(text=list("Totalcatch",col="#0080ff"),rectangle=list(col="#0080ff"),text=list("Catchrate"),lines=list(col=1,type="b",pch=16),text=list("Effort",col=2),lines=list(col=2,type="b",pch=15),corner=c(0,1)) 
p1=barchart(totalcatch~as.factor(year),horizontal=FALSE,ylim=c(0,70),xlim=c(0,7.5),scales=list(y=list(axs="i"),x=list(at=1:7,labels=year)),key=key,col="#0080ff",ylab="Totalcatch") 
p2=xyplot(Effort~as.factor(year),type="b",col=2,scales=list(y=list(axs="i",draw=TRUE)),pch=15,par.settings=simpleTheme(col=2),ylab=list(label="Effort",col=2)) 
p3=xyplot(Catchrate~as.factor(year),type="b",pch=16,col=1,scales=list(y=list(draw=FALSE,axs="i",limit=c(0,0.4))))+layer(panel.axis(side="left",half=FALSE,tck=1,ticks=TRUE,at=seq(0.05,0.35,by=0.05),label=seq(0.05,0.35,by=0.05),line.col=1,text.col=1)) 
doubleYScale(doubleYScale(p1,p2,add.ylab2=TRUE,style2=4),p3)+layer(panel.text(0.8,40,label="Catchrate",srt=90)) 

 Смежные вопросы

  • Нет связанных вопросов^_^