Transform ggplot2 Plot Axis to log Scale in R - GeeksforGeeks

17 Oct, 2021
In this article, we will discuss how to transform the ggplot2 Plot Axis to log Scale in the R Programming Language. 
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 ggplot2library("ggplot2")  # set seedset.seed(50000)   # create sample data using rnorm functionsample_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() functionplot<- ggplot(sample_data, aes(x_axis_values, y_axis_values)) +                  geom_point()  # scale_x_continuous #with trans argument transforms axis data to log scaleplot<- plot + scale_x_continuous(trans = "log10")  # show plotplot
Output:
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 seedset.seed(50000)   # create sample data using rnorm functionsample_data <- data.frame(x_axis_values = rnorm(1000, 700, 105),                   y_axis_values = rnorm(1000, 45, 200))  #load library ggplot2library("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 scaleplot<- ggplot(sample_data, aes(log10(x_axis_values), y_axis_values)) +                  geom_point()  # show plotplot
Output:
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 seedset.seed(50000)   # create sample data using rnorm functionsample_data <- data.frame(x_axis_values = rnorm(1000, 700, 105),                   y_axis_values = rnorm(1000, 45, 200))  #load library ggplot2library("ggplot2")  # draw scatter plot using ggplot() and geom_point() function# scale_x_log10() function converts the x-axis values to# log10 scaleplot<- ggplot(sample_data, aes(x_axis_values, y_axis_values)) +                  geom_point() + scale_x_log10()  # show plotplot
Output:
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 Change Axis Scales in R Plots?
How to Split Column Into Multiple Columns in R DataFrame?
K-Means Clustering in R Programming
Replace Specific Characters in String in R
How to filter R DataFrame by values in a column?
How to import an Excel File into R ?
R - if statement
Time Series Analysis in R