Проблема в том, что базовый график R и рисование сетки используют разные системы построения. Многоугольники будут оставаться постоянными относительно окна построения графика (они будут казаться более узкими по мере уменьшения окна) и не сохранят своих отношений с нижележащими осями графика, тогда как цветные квадраты изменят размер, чтобы сохранить форму. Вы, вероятно, обнаружите, что можете улучшить соответствие вашей сетки, изменив размер окна, но, конечно, это не идеально.
Лучший способ обойти это - использовать спецификацию c метод, предназначенный для построения SpatialPolygonDataFrame
, который является классом S4, созданным rasterToPolygons
. В конце концов, именно так вы «предназначены» для создания такого сюжета.
Вот репрезентация (очевидно, мне пришлось сделать некоторые случайные данные, так как ваши в вопросе не упоминались):
library(raster)
r <- raster(xmn = 1, xmx = 34, ymn = 1, ymx = 34, nrows = 34, ncols = 34)
r[] <- data.matrix(as.data.frame(replicate(34, sample(0:3, 34, TRUE))))
colors <- c("white","blue","green","red")
spplot(rasterToPolygons(r), at = 0:4 - 0.5, col.regions = colors)
Создано 2020-05-04 пакетом REPEX (v0.3.0)