假设我有一个带有这样轮廓的热图:
set.seed(1)
X <- matrix(runif(100*200),nrow=100)
X <- apply(X,1,sort)
#png("Surface.png",width=800,height=400)
lattice::levelplot(t(X),contour=TRUE)
#dev.off()
getwd()
它看起来像这样:
有很多方法可以在 R ( fields::image.plot()
,image()
等中制作这个变体。如果我将这个填充的等高线图保存为 pdf 文件,它是一个非常干净的矢量图像,我可以重新缩放并包含在会议海报中(使用例如, Inkscape)。在这种情况下,类似颜色的区域实际上是单独的栅格单元,而不是合并的多边形,这意味着大量的顶点,在海报中包含几个这样的表面后,这会占用内存并减慢 Inkscape 的速度。最简单的解决方案是从 R 中保存到理想的合并单元格格式,其中连续的类似颜色区域是统一/合并polygon()
的或类似的,从而将顶点数量减少一个数量级或更多。
我的问题是是否有一些表面函数默认已经做到了这一点,或者模拟这种表面输出的简单方法。费力的方法是深入研究 R 的空间函数以合并类似单元格,但我宁愿避免这种情况。提前致谢!