Jan*_*ary 56 r device window-resize
在R中,可以握住设备,绘制图片,然后刷新设备以渲染图形.这对于具有数千个数据点,颜色梯度等的非常复杂的绘图非常有用,因为在没有保持的情况下,设备将在每次绘图操作之后刷新.它运作得很好.
但是,一旦绘图到位,任何窗口操作(如调整大小)都会导致绘图刷新 - 但是,这次没有保持和刷新设备,而是逐个绘制绘图元素并每次刷新显示.这非常烦人.
显然,我可以dev.hold在调整窗口大小之前手动调用,但这不是一个真正的解决方案.
有没有办法告诉R设备应该暂停进行大小调整等操作?
Dan Slone 和 gdkrmr 指出,可行的选择是使用中间光栅文件来绘制复杂图形。
流程如下:
png文件。此后刷新和调整大小就不会出现问题了。
请看下面的代码:
# plotting through png
plot.png <- function(x, y) {
require(png)
tmp <- tempfile()
png(tmp, width = 1920, height = 1080)
plot(x, y, type = "l")
dev.off()
ima <- readPNG(tmp)
op <- par(mar = rep(0, 4))
plot(NULL, xlim = c(0, 100), ylim = c(0, 100), xaxs = "i", yaxs = "i")
rasterImage(ima, 0, 0, 100, 100, interpolate = TRUE)
par(op)
unlink(tmp)
}
t <- 1:1e3
x <- t * sin(t)
y <- t * cos(t)
# without buffering
# plot(x, y, type = "l")
# with buffering in high-res PNG-file
plot.png(x, y)
Run Code Online (Sandbox Code Playgroud)