
Data Structure
Networking
RDBMS
Operating System
Java
MS Excel
iOS
HTML
CSS
Android
Python
C Programming
C++
C#
MongoDB
MySQL
Javascript
PHP
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
Cover Legend in a Box Using ggplot2 in R
To cover legend in a box using ggplot2 in R, we can use theme function with legend.box.background and legend.box.margin argument. The legend.box.background will have a rectangular element with the help of element_rect and margin values will be set in legend.box.margin.
Check out the Example given below to understand how it can be done.
Example
Following snippet creates a sample data frame −
Score<-sample(1:100,20) Rank<-sample(1:10,20,replace=TRUE) Gender<-sample(c("Male","Female"),20,replace=TRUE) df<-data.frame(Score,Rank,Gender) df
The following dataframe is created
Score Rank Gender 1 80 9 Male 2 82 1 Female 3 13 5 Male 4 91 1 Female 5 62 6 Male 6 52 2 Female 7 72 7 Male 8 15 2 Male 9 44 2 Male 10 78 5 Male 11 5 10 Male 12 22 1 Female 13 92 8 Female 14 94 2 Male 15 40 3 Male 16 73 8 Female 17 66 6 Male 18 70 6 Male 19 69 6 Male 20 47 7 Male
To load ggplot2 package and create scatterplot between Score and Rank with points colored by Gender on the above created data frame, add the following code to the above snippet −
Score<-sample(1:100,20) Rank<-sample(1:10,20,replace=TRUE) Gender<-sample(c("Male","Female"),20,replace=TRUE) df<-data.frame(Score,Rank,Gender) library(ggplot2) ggplot(df,aes(Score,Rank))+geom_point(aes(colour=factor(Gender)))
Output
If you execute all the above given snippets as a single program, it generates the following Output −
To create scatterplot between Score and Rank with points colored by Gender having legend covered in a box on the above created data frame, add the following code to the above snippet −
Score<-sample(1:100,20) Rank<-sample(1:10,20,replace=TRUE) Gender<-sample(c("Male","Female"),20,replace=TRUE) df<-data.frame(Score,Rank,Gender) library(ggplot2) ggplot(df,aes(Score,Rank))+geom_point(aes(colour=factor(Gender)))+theme(legend. box.background=element_rect(),legend.box.margin=margin(5,5,5,5))
Output
If you execute all the above given snippets as a single program, it generates the following Output −