Использование np.ravel для указания yerr на графике ошибок

Если вы регулярно работаете с шейп-файлами, geom_path и geom_polygon предоставляют все, что вам нужно. В последних версиях ggplot напрямую занимается пространственными объектами, поэтому нет необходимости использовать fortify и merge (возможно, этот шаг занимает больше времени в вашем коде). Вот пример использования шейп-файла федеративных единиц Бразилии из IBGE в качестве базовой карты:

shapeUFs <- readOGR('.', 'BRUFE250GC_SIR')
shapeHid <- readOGR('.', 'PrincipaisRiosDoBrasil') 

ggplot(shapeUFs, aes(long, lat, group = group)) +
  geom_polygon(fill = 'gray90', color = 'black') +
  geom_path(data = shapeHid, color = 'steelblue2') +
  coord_map() + theme_void()

Производительность будет зависит от размера ваших фигур (определяется количеством функций и уровнем деталей) больше, чем геометрия, которую вы используете в ggplot. Вы можете использовать rgeos :: gSimplify, чтобы уменьшить количество вершин в объекте пространственных полигонов / линий. Вы также можете отображать точки непосредственно над картой:

# Simplifying the geometry of the federative units
shapeUFs.s <- rgeos::gSimplify(shapeUFs, .05, TRUE)

# Storing map in an object
riversMap <- ggplot(shapeUFs.s, aes(long, lat)) +
  geom_polygon(aes(group = group), fill = 'gray90', color = 'black') +
  geom_path(data = shapeHid, aes(group = group), color = 'steelblue2') +
  coord_map() + theme_void()

# Sampling 20 cities in Brazil
brMunics <- read.csv('https://raw.githubusercontent.com/kelvins/Municipios-Brasileiros/master/Municipios_Brasileiros.csv')
Munics <- brMunics[sample(nrow(brMunics), 20), ]

# Plotting points over the map
riversMap + geom_point(data = Munics, aes(Longitude, Latitude), color = 'red')

# If your data already have the coordinates named 'lat' and 'long',
# you can skip aes(Longitude, Latitude):
names(Munics)[6:7] <- c('lat','long')
riversMap + geom_point(data = Munics, color = 'red')

0
задан Kaumz 18 January 2019 в 18:58
поделиться