【发布时间】:2017-10-13 15:23:48
【问题描述】:
我正在尝试使用 screen 在由两个数字组成的图上绘制一个 rasterLayer 对象
首先 - 我们只有一个图像时的工作案例场景:
library(raster)
f <- system.file("external/test.grd", package="raster")
rst <- raster(f)
plot(rst)
points(180000, 332000, col="red", pch=19)
一切看起来都很好,图像看起来像这样:
但是,当我将屏幕一分为二并尝试仅使用一半的绘图区域绘制相同的图形时,我得到以下结果:
library(raster)
f <- system.file("external/test.grd", package="raster")
rst <- raster(f)
class(rst)
figs <- rbind(c(0, 0.5, 0, 1), # Screen1
c(0.5, 1, 0, 1) # Screen2
)
screenIDs <- split.screen(figs)
screen(screenIDs[1])
plot(rst)
points(180000, 332000, col="red", pch=19)
似乎正确绘制了光栅形状的主图像。但是由于某种原因,它随后会捕获整个绘图区域并在其上添加边界线。之后对情节的后续调用(如points)在整个图形上添加点,而不是停留在它的前半部分。
非常感谢任何如何解决或绕过此问题的想法。
【问题讨论】:
-
不确定
split.screen的功能,但使用par(mfrow=c(1,2))是否提供替代选项? -
@timfaber par(mfrow=c(1,2)) 确实有效。但不幸的是我有一个复杂的页面布局(这里的两半只是为了重现示例)并且必须使用
screen。