Force R to write scientific notations as n.nn x 10^-n with superscript

僤鯓⒐⒋嵵緔 提交于 2019-12-02 01:14:32

问题


Let's say I have two floats

a <- 8.9384920e-24
b <- 0.00293892837

I would like to display either of them in 10-base scientific notation rounded to two decimals on a graph, possibly using paste(), but with superscript formatting after the 10.

8.94 x 10^-24 #no ^ and superscript font
2.94 x 10^-4  #no ^ and supercript font, should be -4, not -04

This is really maniac but it has been requested by a superior, it has to be done in base R (not ggplot2) or I will have to re-write 600 lines of code... Right now all I can see is that floats are printed differently depending on how big they are...


回答1:


You may check eaxis in package sfsmisc

# some data
x <- seq(1, 100000, len = 10)
y <- seq(1e-5, 1e-4, len = 10)

# default axes
plot(x, y)

# eaxis
plot(x, y, axes = FALSE)
eaxis(side = 1)
eaxis(side = 2)

You may also create a label expression using pretty10exp() from the same package. For example to apply the format to a plot title:

plot(x, y, axes = FALSE)
title(pretty10exp(y[1]))



来源:https://stackoverflow.com/questions/22833294/force-r-to-write-scientific-notations-as-n-nn-x-10-n-with-superscript

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!