将 levelplot colorkey 标签移近 colorkey
Move levelplot colorkey labels closer to colorkey
如何将 colorkey
lables
移近 colorkey
?颜色中断的标签离色键太远。我希望它们非常接近色键。有什么想法吗?
library(raster)
library(rasterVis)
library(colorRamps)
set.seed(100)
ras <- raster(ncol=100, nrow=100)
ras1 <- setValues(ras, (1:ncell(ras))/100 + rnorm(ncell(ras)) - 50)
s=stack(ras1,ras1,ras1,ras1)
color_levels=14 #the number of colors to use
max_abolute_value=max(abs(c(cellStats(s, min), cellStats(s, max)))) #what is the maximum absolute value of raster?
color_sequence=unique(round(seq(-max_abolute_value,max_abolute_value,length.out=color_levels+1),0))
myColorkey <- list(at=color_sequence,space = "bottom",tck = c(0,0), ## where the colors change
labels=list(axis.line = list(col = NA),at=color_sequence,rot=0,cex=0.9,font=6,
fontface=1),height=1,width=1.4)
col1 <- colorRampPalette(c("darkred", "red3","red", "gray96",
"lightskyblue", "royalblue3", "darkblue"))
levelplot(s,contour=F, layout=c(4, 1), col.regions = col1,colorkey=myColorkey,margin=FALSE,xlab=NULL,ylab=NULL,par.strip.text=list(cex=0))
原因是在 layout
参数中有 4 column
和 3 rows
。减少 rows
的数量应该可以解决问题。
levelplot(s,contour=F, layout=c(4, 1), col.regions = col1,colorkey=myColorkey,margin=FALSE,xlab=NULL,ylab=NULL,par.strip.text=list(cex=0))
可以在调用levelplot
函数后使用grid.edit
缩小距离,更改y
参数:
library(raster)
library(rasterVis)
library(colorRamps)
library(grid)
set.seed(100)
ras <- raster(ncol=100, nrow=100)
ras1 <- setValues(ras, (1:ncell(ras))/100 + rnorm(ncell(ras)) - 50)
s=stack(ras1,ras1,ras1,ras1)
color_levels=14 #the number of colors to use
max_abolute_value=max(abs(c(cellStats(s, min), cellStats(s, max)))) #what is the maximum absolute value of raster?
color_sequence=unique(round(seq(-max_abolute_value,max_abolute_value,length.out=color_levels+1),0))
myColorkey <- list(at=color_sequence,space = "bottom",tck = c(0,0), ## where the colors change
labels=list(axis.line = list(col = NA),at=color_sequence,rot=0,cex=0.9,font=6,
fontface=1),height=1,width=1.4)
col1 <- colorRampPalette(c("darkred", "red3","red", "gray96",
"lightskyblue", "royalblue3", "darkblue"))
levelplot(s,contour=F, layout=c(4, 1), col.regions = col1,colorkey=myColorkey,margin=FALSE,xlab=NULL,ylab=NULL,par.strip.text=list(cex=0))
grid.edit("[.]colorkey.labels$", grep=TRUE, global=TRUE, y=unit(1.5, "mm"))
如何将 colorkey
lables
移近 colorkey
?颜色中断的标签离色键太远。我希望它们非常接近色键。有什么想法吗?
library(raster)
library(rasterVis)
library(colorRamps)
set.seed(100)
ras <- raster(ncol=100, nrow=100)
ras1 <- setValues(ras, (1:ncell(ras))/100 + rnorm(ncell(ras)) - 50)
s=stack(ras1,ras1,ras1,ras1)
color_levels=14 #the number of colors to use
max_abolute_value=max(abs(c(cellStats(s, min), cellStats(s, max)))) #what is the maximum absolute value of raster?
color_sequence=unique(round(seq(-max_abolute_value,max_abolute_value,length.out=color_levels+1),0))
myColorkey <- list(at=color_sequence,space = "bottom",tck = c(0,0), ## where the colors change
labels=list(axis.line = list(col = NA),at=color_sequence,rot=0,cex=0.9,font=6,
fontface=1),height=1,width=1.4)
col1 <- colorRampPalette(c("darkred", "red3","red", "gray96",
"lightskyblue", "royalblue3", "darkblue"))
levelplot(s,contour=F, layout=c(4, 1), col.regions = col1,colorkey=myColorkey,margin=FALSE,xlab=NULL,ylab=NULL,par.strip.text=list(cex=0))
原因是在 layout
参数中有 4 column
和 3 rows
。减少 rows
的数量应该可以解决问题。
levelplot(s,contour=F, layout=c(4, 1), col.regions = col1,colorkey=myColorkey,margin=FALSE,xlab=NULL,ylab=NULL,par.strip.text=list(cex=0))
可以在调用levelplot
函数后使用grid.edit
缩小距离,更改y
参数:
library(raster)
library(rasterVis)
library(colorRamps)
library(grid)
set.seed(100)
ras <- raster(ncol=100, nrow=100)
ras1 <- setValues(ras, (1:ncell(ras))/100 + rnorm(ncell(ras)) - 50)
s=stack(ras1,ras1,ras1,ras1)
color_levels=14 #the number of colors to use
max_abolute_value=max(abs(c(cellStats(s, min), cellStats(s, max)))) #what is the maximum absolute value of raster?
color_sequence=unique(round(seq(-max_abolute_value,max_abolute_value,length.out=color_levels+1),0))
myColorkey <- list(at=color_sequence,space = "bottom",tck = c(0,0), ## where the colors change
labels=list(axis.line = list(col = NA),at=color_sequence,rot=0,cex=0.9,font=6,
fontface=1),height=1,width=1.4)
col1 <- colorRampPalette(c("darkred", "red3","red", "gray96",
"lightskyblue", "royalblue3", "darkblue"))
levelplot(s,contour=F, layout=c(4, 1), col.regions = col1,colorkey=myColorkey,margin=FALSE,xlab=NULL,ylab=NULL,par.strip.text=list(cex=0))
grid.edit("[.]colorkey.labels$", grep=TRUE, global=TRUE, y=unit(1.5, "mm"))