У меня большой фрейм пространственных данных, head
информация здесь:
class : SpatialPolygonsDataFrame
features : 6
extent : 1268821, 1610480, 4828587, 5485976 (xmin, xmax, ymin, ymax)
crs : +proj=tmerc +lat_0=0 +lon_0=173 +k=0.9996 +x_0=1600000 +y_0=10000000 +ellps=GRS80 +units=m +no_defs
variables : 3
names : TA2013_label, TimaruID, DistrictShortNames
min values : Ashburton District, 0, Ashburton
max values : Dunedin City, 0, Dunedin City
Как указано в заголовке, у меня есть: SouthIslandTAs@data@TA2013_label
, SouthIslandTAs@data@TimaruID
и SouthIslandTAs@data@DistrictShortNames
. TA2013_label
- это коэффициент с 23 уровнями, TimaruID
- это число c (0,1), а DistrictShortNames
- это символ. Ранее данные содержали ярлыки для всех территориальных местных органов власти Новой Зеландии. Я удалил данные о Северном острове и уменьшил количество уровней факторов до оставшихся 23 для Южного острова.
Я не могу построить эту карту в ggplot
. Тем не менее, он отлично работает с пакетом tmap
. Но последний создает большие белые поля вокруг графика при сохранении в формате PDF, и я не могу понять, как их удалить, поэтому переход к ggplot
.
Это код для tmap
:
tm_shape(SouthIslandTAs) + tm_polygons("TimaruID", group= "TA2013_label", border.col="grey", style = "jenks",
palette = "Greens") +
tm_layout(legend.show = FALSE) +
tm_text("DistrictShortNames", size=.6, col= "black")
Я получаю карту территориальных властей Южного острова (Новая Зеландия) с районом Тимару, который обозначен более темным зеленым цветом по сравнению со светло-зеленым для остальных ТП.
Но я невозможно получить код, работающий в ggplot
.
Я пробовал:
ggplot(data = SouthIslandTAs, aes(x = long, y = lat, fill = TA2013_label, group = group)) +
geom_polygon()
Regions defined for each Polygons
Error in FUN(X[[i]], ...) : object 'TA2013_label' not found
и
ggplot() +
geom_polygon(data = SouthIslandTAs, aes(x=long, y = lat, group = group), fill = TA2013_label, color = "red")
Regions defined for each Polygons
Error in FUN(X[[i]], ...) : object 'TA2013_label' not found
и
ggplot() +
geom_polygon(data = SouthIslandTAs, aes(x=long, y = lat, group = TA2013_label), fill = TimaruID, color = "red")
Error in layer(data = data, mapping = mapping, stat = stat, geom = GeomPolygon, :
object 'TimaruID' not found
и
ggplot() +
geom_polygon(data = SouthIslandTAs, aes(x=long, y = lat, group = TA2013_label), fill = "TimaruID", color = "red")
Regions defined for each Polygons
Error in FUN(X[[i]], ...) : object 'TA2013_label' not found
Думая, что это может быть проблема с отсутствием @data
, я попытался добавить это в и получил следующую ошибку (и без графика):
ggplot(data = SouthIslandTAs, aes(x = long, y = lat, fill = data@TA2013_label, group = group)) +
geom_polygon()
Regions defined for each Polygons
Error in FUN(X[[i]], ...) :
trying to get slot "TA2013_label" from an object of a basic class ("function") with no slots
Я могу получить базовый c вывод графиков:
ggplot() + geom_polygon(data = SouthIslandTAs, aes(x=long, y = lat, group = group))
и
ggplot() +
geom_polygon(data = SouthIslandTAs, aes(x=long, y = lat, group = group), fill = NA, color = "red")
но я получаю одно и то же предупреждение для обоих из них:
Regions defined for each Polygons
Я не Я не понимаю, почему tmap
подходит для данных, а ggplot
- нет. Я не получаю ошибок или предупреждений с tmap
.