Transform ggplot2 Plot Axis to log Scale in R
Last Updated :
17 Oct, 2021
In this article, we will discuss how to transform the ggplot2 Plot Axis to log Scale in the R Programming Language.
Method 1: Using scale_x_continuous() function with trans argument
We can convert the axis data into the desired log scale using the scale_x_continous() function. We pass the desired log scale as argument trans and the data is transformed according to that log scale in the ggplot2 plot.
Syntax:
plot + scale_x_continous( trans ) / scale_y_continous( trans )
Parameter:
- trans: determine the type of transformation given axis will go through.
Note: Using this method only the data plots are converted into the log scale. The axis tick marks and label remain the same.
Example:
Here is a basic scatter plot converted into the log10 scale x-axis by using scale_x_continuous function with trans argument as log10.
R
#load library ggplot2
library("ggplot2")
# set seed
set.seed(50000)
# create sample data using rnorm function
sample_data <- data.frame(x_axis_values = rnorm(1000, 700, 105),
y_axis_values = rnorm(1000, 45, 200))
# draw scatter plot using ggplot()
#and geom_point() function
plot<- ggplot(sample_data, aes(x_axis_values, y_axis_values)) +
geom_point()
# scale_x_continuous
#with trans argument transforms axis data to log scale
plot<- plot + scale_x_continuous(trans = "log10")
# show plot
plot
Output:

Method 2: Using log function in aes() function of ggplot():
In this method, we directly pass the parameter value in aes() function of ggplot() function as log. This is the best method as this updates the data point as well as axis tick marks and axis labels all in one go.
Syntax:
ggplot( df, aes( log(x), y)
Parameter :
- log: determines any desired log function for transformation
Example:
Here is a basic scatter plot converted into the log10 scale x-axis by using the log10() function in aes function of ggplot() function.
R
# set seed
set.seed(50000)
# create sample data using rnorm function
sample_data <- data.frame(x_axis_values = rnorm(1000, 700, 105),
y_axis_values = rnorm(1000, 45, 200))
#load library ggplot2
library("ggplot2")
# draw scatter plot using ggplot() and geom_point() function
# In aes instead of x_axis_values log10(x_axis_values is used
# this transforms the x-axis scale to log scale
plot<- ggplot(sample_data, aes(log10(x_axis_values), y_axis_values)) +
geom_point()
# show plot
plot
Output:

Method 3: Using scale_x_log10() / scale_y_log10()
We can convert the axis data into the desired log scale using the scale_x_log10() / scale_y_log10() function. we use the desired axis function to get the required result.
Syntax:
plot + scale_x_log10() / scale_y_log10()
Note: Using this method only the data plots are converted into the log scale. The axis tick marks and label remain the same.
Example:
Here is a basic scatter plot converted into the log10 scale x-axis by using the scale_x_log10() function.
R
# set seed
set.seed(50000)
# create sample data using rnorm function
sample_data <- data.frame(x_axis_values = rnorm(1000, 700, 105),
y_axis_values = rnorm(1000, 45, 200))
#load library ggplot2
library("ggplot2")
# draw scatter plot using ggplot() and geom_point() function
# scale_x_log10() function converts the x-axis values to
# log10 scale
plot<- ggplot(sample_data, aes(x_axis_values, y_axis_values)) +
geom_point() + scale_x_log10()
# show plot
plot
Output:
Similar Reads
Set Origin of ggplot2 Plot Axes to Zero in R In this article, we will be looking at the approach to set the origin of the ggplot2 plot axes to zero with the help of some functions of R programming language. In this approach to set the origin of the ggplot2 plot axes to zero, the user first needs to install and import the ggplot2 package in the
2 min read
Set Axis Breaks of ggplot2 Plot in R In this article, we are going to see how to set axis break of ggplot2 plot in R Programming Language. To add axis breaks in ggplot2 plots in R, we use scale_x_break() and scale_y_break() functions. These functions take a vector as a parameter that has breakpoints.  If we need multiple breakpoints w
2 min read
How to save a plot using ggplot2 in R? In this article, we are going to see how to save GGPlot in R Programming language. ggplot2 is a plotting package in R that is used to create complex plots from data specified in a data frame. It provides a more programmatic interface for specifying which variables to plot on to the graphical device,
3 min read
How to set axis limits in ggplot2 in R? In this article, we are going to see how to set the axis limit in ggplot2 in R Programming Language. Method 1: Using coord_cartesian() This method is most helpful as it displays the plot within the limits of the axis without clipping the actual data. It just zooms in and shows the area under limits.
2 min read
How to Change Axis Scales in R Plots? In this article, we will learn how to change Axis Scales in the R Programming Language. Method 1: Change Axis Scales in Base R To change the axis scales on a plot in base R Language, we can use the xlim() and ylim() functions. The xlim() and ylim() functions are convenience functions that set the li
4 min read
Remove Axis Labels and Ticks in ggplot2 Plot in R In this article, we will discuss how to remove axis labels and ticks in ggplot2 in R Programming Language. The axes labels and ticks can be removed in ggplot using the theme() method. This method is basically used to modify the non-data components of the made plot. It gives the plot a good graphical
2 min read
How to fix aspect ratio in ggplot2 Plot in R ? In this article, we will be looking at the approach to fix the aspect ratio in the ggplot2 plot using functions in the R programming language. The aspect ratio of a data graph is defined as the height-to-width ratio of the graph's size. It can be fixed automatically using the coord_fixed() function
2 min read
Set ggplot2 Axis Limit Only on One Side in R In this article, we are going to set the ggplot2 plot axis limit only on one side of the plot in the R programming language. Using scale_x_continuous() or scale_y_continuous() function scale_x_continuous()/scale_y_continuous() function: This function is for the default scales for continuous x or y a
2 min read
Zoom into ggplot2 Plot without Removing Data in R In this article, we will discuss how to zoom into the ggplot2 plot without removing data using ggplot2 package in the R programming language. The approaches to the zoom into ggplot2 plot without removing data are as follows: Zoom in to ggplot2 plot without Removing data using ylim()/xlim() functionZ
2 min read
How to add trend line in a log-log plot (ggplot2)? Creating visual representations of data helps us understand complex relationships more easily. One helpful type of plot for data with wide-ranging values is the log-log plot, which uses logarithms on both axes to make patterns clear. Adding a trend line to a log-log plot shows the overall direction
3 min read