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 (e.g. 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()
The Viridis palette was implemented using blues and yellow sequences (and avoiding reds), in order to increase the readability for the visualizations.
viridis , and its companion package viridisLite provide a series of color maps that are designed to improve graph readability for readers with common forms of color blindness and/or color vision deficiency.
The viridis() function produces the viridis color scale. You can choose the other color scale options using the option parameter or the convenience functions magma() , plasma() , inferno() , cividis() , mako() , rocket () , and turbo()`.
To add labels on each bubble in a bubble plot in the R Language, we use the geom_text() function of the ggplot2 package. The geom_text() function adds textual annotation overlap on top of the ggplot plot. Parameter: x and y: determines the position of the label.
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()
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With