Quantcast

Scientific notation in plots

classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Scientific notation in plots

Oddmund Nordgård

Is it possible to use scientific notation of numbers on the axis of plots
without using the xEy notation. That means: a beatiful 1x10^3 instead of 1E3.
Logarithmic scale, in my case.

Thank you very much!

Oddmund

******************************************

  Oddmund Nordgård

  Department of Haematology and Oncology
  Stavanger University Hospital
  P.O. Box 8100
  4068 STAVANGER
  Phone: 51 51 89 34
  Email: [hidden email]

______________________________________________
[hidden email] mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Scientific notation in plots

IAIN GALLAGHER
try something like this:

>axis(side=2, at=c(0, 5e+5, 1.5e+6, 2.5e+6),
labels=expression(0, 5%*%10^5, 1.5%*%10^6, 2.5%*%10^6)

it will place your 5e+5, 1.5e+6, 2.5e+6 as scientific
notation at the correct positions on the y axis. the
key is the "labels=expression...." part.

Cheers

iain

--- Oddmund Nordgård <[hidden email]> wrote:

>
> Is it possible to use scientific notation of numbers
> on the axis of plots
> without using the xEy notation. That means: a
> beatiful 1x10^3 instead of 1E3.
> Logarithmic scale, in my case.
>
> Thank you very much!
>
> Oddmund
>
> ******************************************
>
>   Oddmund Nordgård
>
>   Department of Haematology and Oncology
>   Stavanger University Hospital
>   P.O. Box 8100
>   4068 STAVANGER
>   Phone: 51 51 89 34
>   Email: [hidden email]
>
> ______________________________________________
> [hidden email] mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide!
> http://www.R-project.org/posting-guide.html
>

______________________________________________
[hidden email] mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Scientific notation in plots

Oddmund Nordgård

Just what I needed!

Thank you very much!

Oddmund

On Fri, 13 Jan 2006, IAIN GALLAGHER wrote:

> try something like this:
>
> >axis(side=2, at=c(0, 5e+5, 1.5e+6, 2.5e+6),
> labels=expression(0, 5%*%10^5, 1.5%*%10^6, 2.5%*%10^6)
>
> it will place your 5e+5, 1.5e+6, 2.5e+6 as scientific
> notation at the correct positions on the y axis. the
> key is the "labels=expression...." part.
>
> Cheers
>
> iain
>
> --- Oddmund Nordgård <[hidden email]> wrote:
>
> >
> > Is it possible to use scientific notation of numbers
> > on the axis of plots
> > without using the xEy notation. That means: a
> > beatiful 1x10^3 instead of 1E3.
> > Logarithmic scale, in my case.
> >
> > Thank you very much!
> >
> > Oddmund
> >
> > ******************************************
> >
> >   Oddmund Nordgård
> >
> >   Department of Haematology and Oncology
> >   Stavanger University Hospital
> >   P.O. Box 8100
> >   4068 STAVANGER
> >   Phone: 51 51 89 34
> >   Email: [hidden email]
> >
> > ______________________________________________
> > [hidden email] mailing list
> > https://stat.ethz.ch/mailman/listinfo/r-help
> > PLEASE do read the posting guide!
> > http://www.R-project.org/posting-guide.html
> >
>

______________________________________________
[hidden email] mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Scientific notation in plots

McGehee, Robert
In reply to this post by Oddmund Nordgård
You could also use a function like this to transform a number x into your "beautiful" notation, where x is the number and digits is the number of digits you would like to see after the decimal. Then you could use the axis and labels syntax suggested by Iain, as such:

sciNotation <- function(x, digits = 1) {
    if (length(x) > 1) {
        return(append(sciNotation(x[1]), sciNotation(x[-1])))
    }
    if (!x) return(0)
    exponent <- floor(log10(x))
    base <- round(x / 10^exponent, digits)
    as.expression(substitute(base %*% 10^exponent,
                        list(base = base, exponent = exponent)))
}

plot(1:1000, axes = FALSE, type = "l", frame.plot = TRUE)
axis(1, at = axTicks(1), label = sciNotation(axTicks(1), 1))

-----Original Message-----
From: [hidden email] [mailto:[hidden email]] On Behalf Of IAIN GALLAGHER
Sent: Friday, January 13, 2006 8:09 AM
To: Oddmund Nordgård
Cc: [hidden email]
Subject: Re: [R] Scientific notation in plots

try something like this:

>axis(side=2, at=c(0, 5e+5, 1.5e+6, 2.5e+6),
labels=expression(0, 5%*%10^5, 1.5%*%10^6, 2.5%*%10^6)

it will place your 5e+5, 1.5e+6, 2.5e+6 as scientific
notation at the correct positions on the y axis. the
key is the "labels=expression...." part.

Cheers

iain

--- Oddmund Nordgård <[hidden email]> wrote:

>
> Is it possible to use scientific notation of numbers
> on the axis of plots
> without using the xEy notation. That means: a
> beatiful 1x10^3 instead of 1E3.
> Logarithmic scale, in my case.
>
> Thank you very much!
>
> Oddmund
>
> ******************************************
>
>   Oddmund Nordgård
>
>   Department of Haematology and Oncology
>   Stavanger University Hospital
>   P.O. Box 8100
>   4068 STAVANGER
>   Phone: 51 51 89 34
>   Email: [hidden email]
>
> ______________________________________________
> [hidden email] mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide!
> http://www.R-project.org/posting-guide.html
>

______________________________________________
[hidden email] mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html

______________________________________________
[hidden email] mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Scientific notation in plots

Leif Kirschenbaum
In reply to this post by Oddmund Nordgård
You could also write your numbers using SI suffixes.
Below is a function I use for this purpose.
The option "near" allows you to require that numbers between 0.001 and 1000 are written as decimal; i.e. "0.010" appears as "0.010" instead of "10.0m".

##
## num2SI converts numbers to SI suffixed numbers
##
num2SI<-function(num,digits=4,near=TRUE){
  power<-signif(log10(abs(num)),digits=6)
  power3=floor(power/3); power3[!is.finite(power3)]=0
  powers=c("y","z","a","f","p","n","u","m","","k","M","G","T","P")
  powerstr=powers[power3+9]
  newnum=signif(num/10^(power3*3),digits=digits)
  newnum[is.nan(newnum)]=0
  numstr=(paste(newnum,powerstr,sep=""))
  nearidx=near & (abs(num)>0.001) & (abs(num)<1000)
  nearidx[is.na(nearidx)]=FALSE
  if(sum(nearidx)) numstr[nearidx]=sprintf("%.*f",pmax(1,(digits-floor(power[nearidx])-1),na.rm=TRUE),num[nearidx])
  numstr[!is.finite(num)] = paste(num[!is.finite(num)])
 return(numstr)
}

Leif Kirschenbaum
Senior Yield Engineer
Reflectivity, Inc.
(408) 737-8100 x307
[hidden email]

> Message: 6
> Date: Fri, 13 Jan 2006 12:49:54 +0100 (CET)
> From: Oddmund Nordg??rd <[hidden email]>
> Subject: [R] Scientific notation in plots
> To: [hidden email]
> Message-ID: <[hidden email]>
> Content-Type: TEXT/PLAIN; charset=ISO-8859-1
>
>
> Is it possible to use scientific notation of numbers on the
> axis of plots
> without using the xEy notation. That means: a beatiful 1x10^3
> instead of 1E3.
> Logarithmic scale, in my case.
>
> Thank you very much!
>
> Oddmund
>
> ******************************************
>
>   Oddmund Nordg?rd
>
>   Department of Haematology and Oncology
>   Stavanger University Hospital
>   P.O. Box 8100
>   4068 STAVANGER
>   Phone: 51 51 89 34
>   Email: [hidden email]

______________________________________________
[hidden email] mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
Loading...