修复 rasterVis::vectorplot 中的文本位置
Fix text position in rasterVis::vectorplot
我正在尝试修复 rasterVis::vectorplot
中某些文本的位置,以便即使我更改了 png 文件的宽度和高度,它也保持在相同的位置。
我尝试使用 par
的保证金参数,但没有成功。
这是我目前得到的示例:
#Some raster data
proj <- CRS('+proj=longlat +datum=WGS84')
df <- expand.grid(x = seq(-2, 2, .01), y = seq(-2, 2, .01))
df$z <- with(df, (3*x^2 + y)*exp(-x^2-y^2))
r <- rasterFromXYZ(df, crs=proj)
#[A]
png("test01.png",width = 918,height = 850,res=100)
vectorplot(r,par.settings=list(layout.widths = list(axis.key.padding = 3)),
narrows = 500,length=0.1,lwd.arrows=0.4)
grid.text(substr(R.version.string, 1, 15),rot=90, x=0.92,y=0.14,gp = gpar(fontsize = 12, fontface = "italic"))
dev.off()
这是[A]的输出。这就是我想要的:
现在,更改宽度和高度:
##[B]
png("test02.png",width = 1718,height = 850,res=100)
vectorplot(r,
par.settings=list(layout.widths = list(axis.key.padding = 3)),
narrows = 500,length=0.1,lwd.arrows=0.4)
grid.text(substr(R.version.string, 1, 15),rot=90, x=0.92,y=0.14,gp = gpar(fontsize = 12, fontface = "italic"))
dev.off()
这是[B]的输出:
如您所见,文本不会停留在同一个位置。 (我是 rasterVis 库的新手。)
latticeExtra
包中的 layer
function 和 panel.text
会在这里帮助你。 panel.text
函数在面板区域内打印,因此您必须将选项 clip = list(panel = FALSE)
添加到设置列表中才能在该区域外打印:
library(grid)
library(rasterVis)
vectorplot(r,par.settings=list(clip = list(panel = FALSE),
layout.widths = list(axis.key.padding = 3)),
narrows = 500,length=0.1,lwd.arrows=0.4) +
layer(panel.text(2.05, -2,
substr(R.version.string, 1, 15),
adj = c(0, 1),
srt = 90))
我正在尝试修复 rasterVis::vectorplot
中某些文本的位置,以便即使我更改了 png 文件的宽度和高度,它也保持在相同的位置。
我尝试使用 par
的保证金参数,但没有成功。
这是我目前得到的示例:
#Some raster data
proj <- CRS('+proj=longlat +datum=WGS84')
df <- expand.grid(x = seq(-2, 2, .01), y = seq(-2, 2, .01))
df$z <- with(df, (3*x^2 + y)*exp(-x^2-y^2))
r <- rasterFromXYZ(df, crs=proj)
#[A]
png("test01.png",width = 918,height = 850,res=100)
vectorplot(r,par.settings=list(layout.widths = list(axis.key.padding = 3)),
narrows = 500,length=0.1,lwd.arrows=0.4)
grid.text(substr(R.version.string, 1, 15),rot=90, x=0.92,y=0.14,gp = gpar(fontsize = 12, fontface = "italic"))
dev.off()
这是[A]的输出。这就是我想要的:
现在,更改宽度和高度:
##[B]
png("test02.png",width = 1718,height = 850,res=100)
vectorplot(r,
par.settings=list(layout.widths = list(axis.key.padding = 3)),
narrows = 500,length=0.1,lwd.arrows=0.4)
grid.text(substr(R.version.string, 1, 15),rot=90, x=0.92,y=0.14,gp = gpar(fontsize = 12, fontface = "italic"))
dev.off()
这是[B]的输出:
如您所见,文本不会停留在同一个位置。 (我是 rasterVis 库的新手。)
latticeExtra
包中的 layer
function 和 panel.text
会在这里帮助你。 panel.text
函数在面板区域内打印,因此您必须将选项 clip = list(panel = FALSE)
添加到设置列表中才能在该区域外打印:
library(grid)
library(rasterVis)
vectorplot(r,par.settings=list(clip = list(panel = FALSE),
layout.widths = list(axis.key.padding = 3)),
narrows = 500,length=0.1,lwd.arrows=0.4) +
layer(panel.text(2.05, -2,
substr(R.version.string, 1, 15),
adj = c(0, 1),
srt = 90))