Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to plot just the legends in ggplot2?

Tags:

r

ggplot2

igraph

I'm currently working with igraph and have colour labelled my vertices. I would like to add a legend Indicating what each colour represents.

What I can think of at this point is to use ggplot2 to print only the legend and hide a bar plot. Is there a way to just output the legend?

like image 243
Buthetleon Avatar asked Aug 20 '12 15:08

Buthetleon


1 Answers

Here are 2 approaches:

Set Up Plot

library(ggplot2)  library(grid) library(gridExtra)   my_hist <- ggplot(diamonds, aes(clarity, fill = cut)) +      geom_bar()  

Cowplot approach

# Using the cowplot package legend <- cowplot::get_legend(my_hist)  grid.newpage() grid.draw(legend) 

Home grown approach

Shamelessly stolen from: Inserting a table under the legend in a ggplot2 histogram

## Function to extract legend g_legend <- function(a.gplot){      tmp <- ggplot_gtable(ggplot_build(a.gplot))      leg <- which(sapply(tmp$grobs, function(x) x$name) == "guide-box")      legend <- tmp$grobs[[leg]]      legend }   legend <- g_legend(my_hist)   grid.newpage() grid.draw(legend)  

Created on 2018-05-31 by the reprex package (v0.2.0).

like image 132
Tyler Rinker Avatar answered Sep 22 '22 17:09

Tyler Rinker