Open In App

Change Y-Axis to Percentage Points in ggplot2 Barplot in R

Improve
Improve
Like Article
Like
Save
Share
Report

In this article, we will discuss how to change the Y-axis to percentage using the ggplot2 bar plot in R Programming Language.

First, you need to install the ggplot2 package if it is not previously installed in R Studio. To install and load write the below command in R Console :

install.packages("ggplot2")
library(ggplot2)

For creating a simple bar plot we will use the function geom_bar( ).

Syntax:

geom_bar(stat, fill, color, width)

Parameters :  

  • stat : Set the stat parameter to identify the mode.
  • fill : Represents color inside the bars.
  • color : Represents color of outlines of the bars.
  • width : Represents width of the bars.

First, we will create a Data Frame which has two vectors “letter” and “probability” and stores it in a variable prob.

R




# Insert Data
prob <- data.frame(letter = c("B1","B2","B3","B4","B5"),
                   probability = c(0.5, 0.1, 0.2, 0.8, 0.3))
 
head(prob)


Let’s create a simple bar plot.

R




# Insert Plot
library("ggplot2")
 
dt <- ggplot(data=prob, aes(x=letter, y=probability)) +
  geom_bar(stat = "identity")
 
dt


Changing Y-axis to Percentage

Some important keywords used are :

  1. accuracy: The precision value to which a number is round to. 
  2. scale: It is used for scaling the data. A scaling factor is multiplied with the original data value.
  3. labels: It is used to assign labels.

The function used is scale_y_continuous( ) which is a default scale in “y-aesthetics” in the library ggplot2. Since we need to add percentages in the labels of the Y-axis, the keyword “labels” is used.

Now use scales: : percent to convert the y-axis labels into a percentage. This will scale the y-axis data from decimal to percentage. It simply multiplies the value by 100. The scaling factor is 100.

In the above code add :

R




# Changing Y-axis to percentage
dt + scale_y_continuous(labels = scales::percent)


Output:

In older versions of R, using the above code you may get the percentage values having one digit after the decimal in the Y-axis as shown in the above example. In such a case, we will use the function percent_format( ) to modify the accuracy of the percentage labels in Y-axis. It is basically used to assign the precision value in order to round it.

Now, modify the above code into :

R




# Accuracy of y-axis
dt + scale_y_continuous(labels = scales::percent_format(accuracy = 1))


Output:



Last Updated : 15 Feb, 2023
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads