我有一个相当直截了当的问题。例如:
library(raster)
library(rasterVis)
library(lattice)
a<-raster(matrix(rep(c(1:5,50,100)),7,7))
plot.new()
par(mfrow=c(1,1))
sbreak<-c(1,2,3,4,5,50,100)
col.l <- colorRampPalette(c('darkblue','blue','deepskyblue','cyan','orange','darkred'))(100)
print(levelplot(a,margin=FALSE,col.regions=col.l,at=sbreak,par.settings=list(layout.heights=list(xlab.key.padding=2),col=col.l)))
我只关心1到5的范围,但是必须将异常值绘制到100以上。情节本身很好,但我很难看到图例中1-5的范围。我希望在我指定的休息时间(1,2,3,4,5,50,100)之间有相同的空间。
**************更新*******************
我刚刚解决了这个问题,有一个简单的方法可以做到这一点而不是单独绘制图例:
sbreak1<-c(1,2,3,4,5,50,100)
sbreak2<-c(1,2,3,4,5,6,7)
legendbreak<-c('<1','2','3','4','5','50','100')
col.l <-colorRampPalette(c('darkblue','blue','deepskyblue','cyan','orange','darkred'))(100)
print(levelplot(a,margin=FALSE,col.regions=col.l,at=sbreak1,par.settings=list(layout.heights=list(xlab.key.padding=2),col=col.l),colorkey=list(at=sbreak2,labels=legendbreak,col=col.l))
关键是用单独的设置欺骗传奇。感谢您的指导