r - 修复 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] 的输出。这就是我想要的:
现在,改变宽度和高度:
##[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 库的新手。)
解决方案
包的layer
功能将在这里为您提供帮助。功能在面板区域内打印,因此您必须将选项添加到设置列表才能在此区域外打印:latticeExtra
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))
推荐阅读
- python - 如何将 unicode 符号添加到提交按钮
- android - adb 命令使用 workmanager 列出所有计划的工作
- swift - '?在 case let 声明中打开一个可选的?
- java - 以线程安全的方式有效地使用 BufferedImage?
- unity3d - 什么是 vprog 纹理,为什么 GLES20 不支持它们?
- codeigniter - cronjob 未使用 codeigniter 运行
- java - UnsupportedOperationException:改用 StringFactory
- monaco-editor - 如何自定义 JSON 模式悬停?
- sql - 更新B表后如何从A表中取一个属性值到B表?
- python - 如何将 2D 数组连接到每个 3D 数组中?