How to use scale_x_continuous() function with trans argument In R 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 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:

Transform ggplot2 Plot Axis to log Scale in R

In this article, we will discuss how to transform the ggplot2 Plot Axis to log Scale in the R Programming Language. 

Similar Reads

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....

Method 2: Using log function in aes() function of ggplot():

...

Method 3: Using scale_x_log10() / scale_y_log10()

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....