Как мне построить свою форму со списком полигонов с помощью ggplot2? - PullRequest
0 голосов
/ 09 января 2020

Я впервые работаю с пространственными данными. Цель моего проекта - визуализировать динамику цен на рынке жилья в городе Мехелен (Бельгия). Я хочу визуализировать этот цветовой код на географической карте c с различными районами города.

Я получил файл формы (.shp) из города, который визуализировал бы все разные окрестности, и я могу импортировать его с помощью пакета sf, но мне не удается построить его с помощью пакета ggplot2.

Пожалуйста, найдите мой текущий код ниже:

library(sf)
library(ggplot2)

#WORKING PART - reading the shape file
shapefile_df <- “/filepath.shp" %>%
  st_read()

#NOT WORKING PART - plotting the shapefile
map <- ggplot() +
  geom_polygon(data = shapefile_df, 
               aes(x = long, y = lat, group = group),
               color = 'gray', fill = 'white', size = .2)

print(map)

При чтении файла формы я получаю 4-колоночный фрейм данных, в котором 4-й столбец представляет собой список полигонов с именем geometry.

Мой вопрос: как я могу получить long и lat из этого списка полигонов? Или я полностью смотрю с неправильной точки зрения?

Для справки, когда я введите shapefile_df$geometry RStudio отвечает:

Geometry set for 12 features 
geometry type:  POLYGON
dimension:      XY
bbox:           xmin: 4.370086 ymin: 50.99116 xmax: 4.549005 ymax: 51.07861
epsg (SRID):    4326
proj4string:    +proj=longlat +datum=WGS84 +no_defs
First 5 geometries:
POLYGON ((4.471225 51.03026, 4.471367 51.03, 4....
POLYGON ((4.496646 51.02285, 4.496969 51.02247,...
POLYGON ((4.484093 51.01383, 4.484615 51.01353,...
POLYGON ((4.450368 51.0356, 4.450477 51.03558, ...
POLYGON ((4.439164 51.0608, 4.439563 51.06049, ...

Кто-нибудь может помочь? Я подумал, что это может быть полезно, я поделился файлом формы. Есть ли лучший способ обмена файлами здесь?

Пожалуйста, имейте в виду, что это мой первый пост, и я много читал о том, как правильно задавать вопросы здесь, пожалуйста, оставьте отзыв, если некоторые объяснения / код не достаточно c достаточно.

1 Ответ

1 голос
/ 09 января 2020

Ты неправильно это смотришь, но не волнуйся. Это проще, чем вы думаете.

Shapefiles & sf объекты немного отличаются от ususal data.frames. geom_sf знает, как строить точки, линии и многоугольники, без необходимости точно указывать, что делать.

Чтобы заставить ваш график работать:

#start with a basic plot:
ggplot() +
  geom_sf(data = shapefile_df)

Оттуда Вы можете добавить цвет, заливку, размер и т. д. c. Аргументы.

Похоже, ваши данные состоят из полигонов, поэтому ожидайте увидеть что-то подобное, но с границами окрестностей от вашей области.

nc

График из данных примера из пакета sf.

...