The scale_y_continuous Function in R

Use
scale_y_continuous
to Print YAxis Labels as Percentages in R 
Use
scale_y_continuous
to Set Scaling Ratio of YAxis in R 
Use
scale_y_continuous
to Remove Labels on YAxis in R 
Use
scale_y_continuous
to Modify YAxis Labels With Custom Values in R
This article will introduce the scale_y_continuous
function in R.
Use scale_y_continuous
to Print YAxis Labels as Percentages in R
scale_y_continuous
is used to set values for continuous yaxis scale aesthetics. The function is part of the ggplot2
package, and it’s mostly used with ggplot
objects to modify different parameters for graphs to be drawn. This example demonstrates the use of scale_y_continuous
to print Yaxis labels as percentage values. Note that, the stacked bar graph is created using the geom_col(position = "fill")
function call and percentages are printed using the scales::percent
function as the labels
parameter value. Since we included the scales
package using the library
call, it’s possible to refer to it using the percent
notation in this script’s scope.
library(ggplot2)
library(gridExtra)
library(scales)
p1 < ggplot(OrchardSprays, aes(x = rowpos, y = decrease, fill = treatment)) +
geom_col(position = "fill")
p2 < ggplot(OrchardSprays, aes(x = rowpos, y = decrease, fill = treatment)) +
geom_col(position = "fill") +
scale_y_continuous(labels = percent)
grid.arrange(p1, p2, ncol = 2, nrow =2)
Use scale_y_continuous
to Set Scaling Ratio of YAxis in R
One can also utilize scale_y_continuous
to set the yaxis scale and increment value to print the next label. The seq
function is used to pass the number sequence to the breaks
parameter in the scale_y_continuous
call. It interprets numbers as seq(from, to, by= )
representation.
library(ggplot2)
library(gridExtra)
library(scales)
p1 < ggplot(OrchardSprays, aes(x = rowpos, y = decrease, fill = treatment)) +
geom_col(position = "fill")
p2 < ggplot(OrchardSprays, aes(x = rowpos, y = decrease, fill = treatment)) +
geom_col(position = "fill") +
scale_y_continuous(labels = percent)
p3 < ggplot(OrchardSprays, aes(x = treatment, y = decrease)) +
geom_point(colour = "blue")
p4 < ggplot(OrchardSprays, aes(x = treatment, y = decrease)) +
geom_point(colour = "brown") +
scale_y_continuous(breaks = seq(0, 150, 10))
grid.arrange(p1, p2, p3, p4, ncol = 2, nrow =2)
Use scale_y_continuous
to Remove Labels on YAxis in R
Alternatively, we can fully remove labels on the yaxis using the scale_y_continuous
function. For this, we need to pass NULL
value as the breaks
parameter. Note that we draw two graphs for visual comparison with the grid.arrange
function.
library(ggplot2)
library(gridExtra)
p3 < ggplot(OrchardSprays, aes(x = treatment, y = decrease)) +
geom_boxplot(fill = "cyan")
p4 < ggplot(OrchardSprays, aes(x = treatment, y = decrease)) +
geom_boxplot(fill = "pink") +
scale_y_continuous(breaks = NULL)
grid.arrange(p3, p4, ncol = 2, nrow =2)
Use scale_y_continuous
to Modify YAxis Labels With Custom Values in R
Some of the previous methods can be mixed to form more advanced formatting of yaxis aesthetics. In the following code snippet, we explicitly specify several labels to be printed and simultaneously define new values for them using the labels
parameter. Notice that new values are just hexadecimal number notation for the corresponding numbers. Finally, we rename the yaxis scale with the given string and the xaxis, which is done using the scale_x_discrete
function.
library(ggplot2)
library(gridExtra)
p3 < ggplot(OrchardSprays, aes(x = treatment, y = decrease)) +
geom_boxplot(fill = "cyan")
p4 < ggplot(OrchardSprays, aes(x = treatment, y = decrease)) +
geom_boxplot(fill = "pink") +
scale_y_continuous(
breaks = c(50, 60, 70, 80, 90, 100, 110),
labels = c("32", "3C", "46", "50", "5A", "64", "6E"),
name = "Decrease\n(hex)") +
scale_x_discrete(name = "Treatment")
grid.arrange(p3, p4, ncol = 2, nrow =2)
Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front/backend programming.
LinkedIn Facebook