Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

ggplot2 increase space between legend keys

Tags:

r

ggplot2

How can I increase the space between the keys of the legend of ggplot2 plot?

library(ggplot2) ggplot(aes(mpg, wt, colour = factor(cyl)),        , data = mtcars) +       geom_point() +   theme(legend.direction = "horizontal",          legend.position = "bottom") +   guides(color = guide_legend(nrow=2)) 

enter image description here

I am looking for a ggplot2 option that add a kind of vertical adjustment between (key 4 and key 6) in the plot above? Should I create a custom legend key?

PS: I want to increase the blank space between boxes not between labels.

the desired plot is :

enter image description here

NOTE: No the question is not duplicated of the other question. We want here to add a vertical spacing between items that are already in multiple rows. In the other question we have 1-row legend and we want to add spaces (horizontal) between items.

like image 558
agstudy Avatar asked Aug 28 '15 15:08

agstudy


1 Answers

An alternative (and probably easier) solution is using legend.key and legend.key.size in the theme part of your code:

ggplot(data = mtcars, aes(mpg, wt, colour = factor(cyl))) +   geom_point() +   guides(color = guide_legend(nrow = 2)) +   theme(legend.direction = 'horizontal',          legend.position = 'bottom',         legend.key = element_rect(size = 5),         legend.key.size = unit(1.5, 'lines')) 

this gives:

enter image description here


In case you are calling theme_bw or theme_classic before manipulating the legend, you should set the color of the legend rectangle:

legend.key = element_rect(size = 5, color = 'white') #or: color = NA 
like image 63
Jaap Avatar answered Oct 02 '22 06:10

Jaap