How to change legend title in ggplot2 in R? - GeeksforGeeks

30 May, 2021
In this article, we will see how to change the legend title using ggplot2 in R Programming. 
We will use ScatterPlot. For the Data of Scatter Plot, we will pick some 20 random values for the X and Y axis both using rnorm() function which can generate random normal values, and here we have one more parameter for naming the legend named ‘Users’. We use sample() function to generate data for Users vector. sample() function takes a sample of the specified size of elements with or without replacement. Then create a DataFrame and assign it to ‘data’ data object.
Now we will create a Plot using ggplot() function and make it Scattered using geom_point() function. Here for creating a simple Scatterplot, we use only the size argument of geom_point() function to set the size of the point.
R
# Load Packagelibrary("ggplot2")  # Create DataFrame for plottingdata<-data.frame(x = rnorm(20),               y = rnorm(20),               Users = sample(c("User 1", "User 2", "User 3",                                "User 4", "User 5"),                              20, replace=TRUE))  # Create ScatterPlot using ggplot2 ggplot(data,aes(x, y, color = Users))+  geom_point(size = 10)
Output:
ScatterPlot with Legend
Method 1: Change Legend Title using guides() Function.
Now if we want to change Legend Title then we have to add guides and guide_legend functions to the geom_point function. Inside guides() function, we take parameter named ‘color’ because we use color parameter for legend in ggplot() function. ‘color’ has call to guide_legend() guide function as value. Inside guide_legend() function, we take an argument called ‘title’ , which has the new title of legend as a value.
Syntax : guide_legend(title)
Parameter :
title : A string, which is the New Title of ggplot2 Legend. if title has value NULL, the title is not shown.
Return : Legend Guides for various scales
Here title “Users” is replaced with “Users By guides” By using guides() function.
R
# Load Packagelibrary("ggplot2")  # Create DataFrame for plottingdata<-data.frame(x = rnorm(20),               y = rnorm(20),               Users = sample(c("User 1", "User 2", "User 3",                                "User 4", "User 5"),                              20, replace = TRUE))  # Create ScatterPlot with Changed Title of # Legend using guides() ggplot(data,aes(x, y, color = Users))+  geom_point(size = 10)+  guides(color = guide_legend(title = "Users By guides"))
Output:
ScatterPlor with changed title of Legend using guides()
Method 2: Change Legend Title using labs() Function.
Generally labs() function is widely used for assigning title, subtitle, caption, and tags to plot, but it can also change the title of other aesthetics. Like here we have one extra aesthetic inside ggplot() function named ‘color’ for legend. So, we can also change the title of ‘color’ aesthetic (i.e. Legend) For that we have to add lab function to geom_point and assign the parameter ‘color’ to its function and give it the new title of ggplot2 plot Legend.
Syntax : labs(...)
Parameter :
Generally labs() has many parameters like title, subtitle, caption, tags, label. we can use them as per our requirements. here we use only one plot aesthetic as a parameter which changes the title of plot Legend.
... : List of new aesthetic pairs.
Return : Labels which useful to make plot more understandable.
Here title “Users” is replaced with “Users By labs” By using labs() function.
R
# Load Packagelibrary("ggplot2")  # Create DataFrame for plottingdata<-data.frame(x = rnorm(20),               y = rnorm(20),               Users = sample(c("User 1", "User 2", "User 3",                                "User 4", "User 5"),                              20, replace=TRUE))  # Create ScatterPlot with Changed Title# of Legend using labs() ggplot(data,aes(x, y, color = Users))+  geom_point(size = 10)+  labs(color = "Users By labs")
Output:
ScatterPlor with changed title of Legend using labs()
Picked
R-ggplot
R Language
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Change Color of Bars in Barchart using ggplot2 in R
Group by function in R using Dplyr
How to Split Column Into Multiple Columns in R DataFrame?
How to Change Axis Scales in R Plots?
Replace Specific Characters in String in R
How to filter R DataFrame by values in a column?
R - if statement
How to filter R dataframe by multiple conditions?
Plot mean and standard deviation using ggplot2 in R
Time Series Analysis in R