How to change the legend shape using ggplot2 in R?

R ProgrammingServer Side ProgrammingProgramming

By default, the shape of legend is circular but we can change it by using the guides function of ggplot2 package. For example, if we have a data frame with two numerical columns say x and y, and one categorical column Group then the scatterplot between x and y for different color values of categories in categorical column Group having different shape of legends can be created by using the below command −

ggplot(df,aes(x,y,color=Group))+geom_point()+guides(colour=guide_legend(override.aes=list(shape=0)))

Here, we can change the shape argument value to any value between starting from 0 to 25.

Consider the below data frame −

Example

 Live Demo

x<-rpois(20,5)
y<-rpois(20,2)
Group<-sample(c("Male","Female"),20,replace=TRUE)
df<-data.frame(x,y,Group)
df

Output

   x  y  Group
1  7  1  Female
2  7  0  Female
3  4  2  Male
4  3  2  Male
5  2  1  Male
6  9  0  Female
7  5  4  Male
8  3  1  Female
9  5  1  Female
10 6  1  Female
11 3  2  Male
12 5  1  Male
13 4  1  Male
14 5  3  Female
15 1  6  Female
16 5  3  Male
17 4  2  Female
18  5 5  Female
19 2  3  Female
20 5  4  Male

Loading ggplot2 package and creating scatterplot between x and y with different colors for Group values −

Example

library(ggplot2)
ggplot(df,aes(x,y,color=Group))+geom_point()

Output

Creating the scatterplot between x and y with different legend shape −

Example

ggplot(df,aes(x,y,color=Group))+geom_point()+guides(colour=guide_legend(override.aes=list(shape=17)))

Output

raja
Published on 11-Feb-2021 12:16:41
Advertisements