Изменение цвета карт в ggplot - PullRequest
       7

Изменение цвета карт в ggplot

0 голосов
/ 26 октября 2019

Поэтому я пытаюсь изменить цвета на своих картах ggplot сюжет

код внизу:

Я знаком с функцией scale_fill_viridis_d() и также аргументом optionsв этой функции

Однако есть ли способ, как сделать эти карты более «хорошими» цветами, я знаю, что вы не знаете, что означает «более хороший», но чем-то похожи на пример, который я привел?

Также я могу написать список цветов "вручную", но что, если у нас будет 100 или более стран?

library(rgeos)
library(rgdal)
library(dplyr)
require(maps)
require(viridis)
library(ggplot2)
library(spdep)

some.eu.countries <- c(
  "Portugal", "Spain", "France", "Switzerland", "Germany",
  "Austria", "Belgium", "UK", "Netherlands",
  "Denmark")
# Retrievethe map data

map_data("europe")
some.eu.maps <- map_data("world", region = some.eu.countries) 

g = ggplot(some.eu.maps, aes(x = long, y = lat, group = group)) +
  geom_polygon(fill="lightgray", colour = "white") 
g

# Region base centroid
region.lab.data <- some.eu.maps %>%
  group_by(region) %>%
  summarise(long = mean(long), lat = mean(lat)) 

# Now plotting countries
g = ggplot(some.eu.maps, aes(x = long, y = lat)) +
  geom_polygon(aes( group = group, fill = region), colour = "black", size = 1.2) + 
  scale_fill_viridis_d()
print(g)

Пример: image

1 Ответ

1 голос
/ 26 октября 2019

Здесь у вас есть два варианта:

library(RColorBrewer)
library(ggplot2)
library(dplyr)

# get number of groups
groups <- some.eu.maps %>% 
  pull(region) %>% 
  unique() %>% 
  length()

# continuous color scale from red over green to orange
colors1 <- colorRampPalette(c("red", "green", "orange"))(groups) 
# discrete colour scale with red, grren, and orange
colors2 <- rep(c("red", "green", "orange"), length.out = groups)

g <- ggplot(some.eu.maps, aes(x = long, y = lat)) +
  geom_polygon(aes( group = group, fill = region), 
               colour = "black", size = 1.2) 

g + 
  scale_fill_manual(values = colors1)
g + 
  scale_fill_manual(values = colors2)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...