简体   繁体   中英

Bubble map legend color in ggplot2 using viridis

Hello I would like the bubbles in the legend of this bubble map to be colored in the viridis colors used in the chart. I figured out how to customize the colors using a simple color (eg orange here) but I'm I'm not sure how to override aes with the viridis colors, or more generally any color palette.

guides(size=guide_legend(override.aes = list(color= "orange")))

# Libraries
library(ggplot2)
library(dplyr)

# Get the world polygon and extract UK
library(maps)
UK <- map_data("world") %>% filter(region=="UK")

# Get a data frame with longitude, latitude, and size of bubbles (a bubble = a city)
data <- world.cities %>% filter(country.etc=="UK")

# virids package for the color palette
library(viridis)

# Do bubble map and use viridis as color palette 
ggplot() +
  geom_polygon(data = UK, aes(x=long, y = lat, group = group), fill="grey", alpha=0.3) +
  geom_point( data=data, aes(x=long, y=lat, size=pop, color=pop)) +
  scale_size_continuous(range=c(1,12)) +
  scale_color_viridis(trans="log") +
  guides(size=guide_legend(override.aes = list(color= "orange"))) + 
  theme_void() + ylim(50,59) + coord_map() 

You can use the viridis function to pass colors (in this case 3 colors) from the viridis palette to override.aes like you where doing with orange:

ggplot() +
  geom_polygon(data = UK, aes(x=long, y = lat, group = group), fill="grey", alpha=0.3) +
  geom_point( data=data, aes(x=long, y=lat, size = pop, color = pop)) +
  scale_size_continuous(range=c(1,12)) +
  scale_color_viridis(trans="log") +
  guides(size=guide_legend(override.aes = list(color = viridis(3)))) +
  theme_void() + ylim(50,59) + coord_map() 

在此处输入图片说明

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM