首页 > 解决方案 > 修复 rasterVis::vectorplot 中的文本位置

问题描述

我正在尝试修复 a 中某些文本的位置,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] 的输出。这就是我想要的:

1

现在,改变宽度和高度:

##[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] 的输出:

2

如您所见,文本不会留在同一个地方。(我是 rasterVis 库的新手。)

标签: rplotrasterrastervis

解决方案


包的layer功能将在这里为您提供帮助。功能在面板区域内打印,因此您必须将选项添加到设置列表才能在此区域外打印:latticeExtrapanel.textpanel.textclip = 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))

在此处输入图像描述


推荐阅读