How do I change the formatting of numbers on an axis with ggplot?

后端 未结 5 991
独厮守ぢ
独厮守ぢ 2020-11-28 01:07

I\'m using R and ggplot to draw a scatterplot of some data, all is fine except that the numbers on the y-axis are coming out with computer style exponent formatting, i.e. 4e

5条回答
  •  感动是毒
    2020-11-28 02:00

    I also found another way of doing this that gives proper 'x10(superscript)5' notation on the axes. I'm posting it here in the hope it might be useful to some. I got the code from here so I claim no credit for it, that rightly goes to Brian Diggs.

    fancy_scientific <- function(l) {
         # turn in to character string in scientific notation
         l <- format(l, scientific = TRUE)
         # quote the part before the exponent to keep all the digits
         l <- gsub("^(.*)e", "'\\1'e", l)
         # turn the 'e+' into plotmath format
         l <- gsub("e", "%*%10^", l)
         # return this as an expression
         parse(text=l)
    }
    

    Which you can then use as

    ggplot(data=df, aes(x=x, y=y)) +
       geom_point() +
       scale_y_continuous(labels=fancy_scientific) 
    

提交回复
热议问题