如何在R中平滑用图像函数生成的图?

j91*_*j91 4 plot r

我正在制作一个带有R基函数"image"的高程图.尽管如此,我希望在各级之间获得更平滑的过渡,以使图像看起来像素化更少.逻辑解决方案是添加更宽的调色板,我已经做过,但结果还不令人满意.如何在不改变坐标系的情况下实现良好的平滑效果(我需要覆盖一系列的段和点)?

x <- 10*(1:nrow(volcano))
y <- 10*(1:ncol(volcano))
shades = colorRampPalette(c("yellow", "red"))
image(x, y, volcano,
col=shades(100),breaks=seq(min(volcano),max(volcano),
(max(volcano)- min(volcano))/100),axes = FALSE)
segments(x0=c(100,600), x1=c(600,100), 
     y0=c(100,600),
     y1=c(600,100))
points(x=seq(100,800,100), y=rep(300,8),pch=16,col="blue",cex=3)
axis(1, at = seq(100, 800, by = 100))
axis(2, at = seq(100, 600, by = 100))
Run Code Online (Sandbox Code Playgroud)

bap*_*ste 5

由于某些原因interpolate=FALSE,硬编码image.default,但您可以rasterImage直接使用较低级别的功能:

m <- cut(scales::rescale(volcano), 100)
levels(m) <- shades(100)
m <- as.character(m)
dim(m) <- dim(volcano)
m <- t(m)[ncol(m):1,]

rasterImage(as.raster(m), min(x), min(y), max(x), max(y), interpolate = TRUE)
Run Code Online (Sandbox Code Playgroud)

并排比较:

在此输入图像描述