Скажем, у меня есть тепловая карта с такими контурами:
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()
s или аналогичным образом, тем самым уменьшая количество вершин на порядок или больше.
Мой вопрос в том, есть ли какая-нибудь функция поверхности, которая уже делает это по умолчанию, или способ с минимальными усилиями имитировать такой вывод поверхности. Подход, требующий больших усилий, заключался бы в том, чтобы погрузиться в пространственные функции R для слияния подобных ячеек, но я бы предпочел этого избежать. Заранее спасибо!
panel = panel.levelplot.raster
внутрьlevelplot
? - person   schedule 24.04.2015