Построение баров на карте с помощью ggplot

@RiggsFolly: самоподписанный сертификат с ключом можно легко сгенерировать, например, здесь ... http://www.selfsignedcertificate.com/ , поэтому я мог бы начать учебник с шага 4 ( У меня также был стандарт: 80 виртуальных серверов работает.)

В любом случае некоторые упомянутые вещи уже были включены в настройке по умолчанию WAMP (я думаю, это меняется от версии к версии), но все остальное мне очень помогло. И на самом деле одна вещь отсутствовала ... Мне также пришлось раскомментировать следующую строку в «httpd.conf»

LoadModule socache_shmcb_module modules/mod_socache_shmcb.so

1
задан BeSeLuFri 17 January 2019 в 15:32
поделиться

1 ответ

Это должно быть рабочим решением. Обратите внимание, что заморские территории смещают центроид Франции от материка Франции.

library(tidyverse)
#library(rworldmap)
library(sf)
# Data 
library(spData)      
library(spDataLarge)

# Get map data
worldMap <- map_data("world")

# Select only some countries and add values
europe <- 
  data.frame("country"=c("Austria",
                         "Belgium", 
                         "Germany",
                         "Spain", 
                         "Finland", 
                         "France", 
                         "Greece", 
                         "Ireland", 
                         "Italy", 
                         "Netherlands", 
                         "Portugal",
                                 "Bulgaria","Croatia","Cyprus", "Czech Republic","Denmark","Estonia", "Hungary",
                                 "Latvia", "Lithuania","Luxembourg","Malta", "Poland", "Romania","Slovakia",
                                 "Slovenia","Sweden","UK", "Switzerland",
                                 "Ukraine", "Turkey", "Macedonia", "Norway", "Slovakia", "Serbia", "Montenegro",
                                 "Moldova", "Kosovo", "Georgia", "Bosnia and Herzegovina", "Belarus", 
                                 "Armenia", "Albania", "Russia"),
                     "Growth"=c(1.0, 0.5, 0.7, 5.2, 5.9, 2.1, 
                                1.4, 0.7, 5.9, 1.5, 2.2, rep(NA, 33)))

# Merge data and keep only Europe map data

data("world")

worldMap <- world

worldMap$value <- europe$Growth[match(worldMap$region,europe$country)]

centres <- 
  worldMap %>%
  filter()
  st_centroid()

worldMap <- worldMap %>%
  filter(name_long %in% europe$country) 

# Plot it 

centroids <- 
  centres$geom %>% 
  purrr::map(.,.f = function(x){data.frame(long = x[1],lat = x[2])}) %>% 
  bind_rows %>% data.frame(name_long = centres$name_long) %>% 
  left_join(europe,by = c("name_long" = "country"))


barwidth = 1
barheight = 0.75

ggplot()+ 
  geom_sf(data = worldMap, color = "black",fill = "lightgrey",
               colour = "white", size = 0.1)+
  coord_sf(xlim = c(-13, 35),  ylim = c(32, 71)) + 
  geom_rect(data = centroids,
            aes(xmin = long - barwidth,
                xmax = long + barwidth,
                ymin = lat,
                ymax = lat + Growth*barheight)) + 
  geom_text(data = centroids %>% filter(!is.na(Growth)),
            aes(x = long,
                y = lat + 0.5*Growth*0.75,
                label = paste0(Growth," %")),
            size = 2) + 
  ggsave(file = "test.pdf",
         width = 10,
         height = 10)
0
ответ дан Marcel Schliebs 17 January 2019 в 15:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: