Home > Software engineering >  create own x-axis graduation
create own x-axis graduation

Time:07-27

I'm looking to adapt the x-scale of my graph with the ggplot2 library

Here is a example of what I mean:

example <- data.frame(a = 1:2000, b = rnorm(n = 2000))
ggplot(example,aes(a,b))   geom_point()   scale_x_continuous(n.breaks = 5)

Giving me this plot

enter image description here

What I want to do is to change the breaks of the x-axis so that its scale is not linear anymore.

As a example I'm looking to change the values of the breaks 500,1000,1500 to 2,20,200 respectively. The graph needs to adapt to this change of scale

CodePudding user response:

We can log transform an axis with base 10 using scale_x_log10, then use scales::trans_breaks to set your desired breaks.

library(tidyverse)
library(scales)

set.seed(123)
example <- data.frame(a = 1:2000, b = rnorm(n = 2000))

ggplot(example, aes(a, b))   
  geom_point()   
  scale_x_log10(breaks = trans_breaks("log10", function(x) 2*10^x))

Created on 2022-07-26 by the reprex package (v2.0.1)

  • Related