>>>>> "TL" == Thomas Lumley <[EMAIL PROTECTED]>
>>>>>     on Thu, 17 Jun 2004 09:53:33 -0700 (PDT) writes:

    TL> On Thu, 17 Jun 2004, Rishi Ganti wrote:

    >> I've got a few issues with the x-axes in the histogram
    >> and density plots.  First, often the default x-axis
    >> doesn't even extend to the length of my data. R often
    >> draws histogram bars (or density lines) farther than the
    >> drawn x-axis extends. For example, I might have a
    >> histogram bar at -15,000. But I wouldn't know that,
    >> because the most negative number on the x-axis is
    >> -10,000.  The second issue is the use of scientific
    >> notation. Yes I can read it, but I don't prefer it. Is
    >> there any way for R just to print out 1000000 and not
    >> 1e+6 on these charts?  Thanks for your help.  Rishi
    >> 

    TL> You can use the axis() function to draw axes with any set of labels you
    TL> want.

and I've recently written the following to show someone how to 
"beautify" the situation (when "1e<n>" labels appear: BTW, under
          windows there's an etra space in there which IMO makes
          the labels much uglier) :


###----------------- Do "a 10^k" labeling instead of "a e<k>" ---
x <- 1e7*(-10:50)
y <- dnorm(x, m=10e7, s=20e7)
plot(x,y)

axTexpr <- function(side, at = axTicks(side, axp=axp, usr=usr, log=log),
                    axp = NULL, usr = NULL, log = NULL)
{
    ## Purpose: Do "a 10^k" labeling instead of "a e<k>"
    ##        this auxiliary should return 'at' and 'label' (expression)
    ## ----------------------------------------------------------------------
    ## Arguments: as for axTicks()
    ## ----------------------------------------------------------------------
    ## Author: Martin Maechler, Date:  7 May 2004, 18:01
    eT <- floor(log10(abs(at)))# at == 0 case is dealt with below
    mT <- at / 10^eT
    ss <- lapply(seq(along = at),
                 function(i) if(at[i] == 0) quote(0) else
                 substitute(A %*% 10^E, list(A=mT[i], E=eT[i])))
    do.call("expression", ss)
}

plot(x,y, axes= FALSE, frame=TRUE)
aX <- axTicks(1); axis(1, at=aX, label= axTexpr(1, aX))
if(FALSE) # rather the next one
aY <- axTicks(2); axis(2, at=aY, label= axTexpr(2, aY))
## or rather (horizontal labels on y-axis):
aY <- axTicks(2); axis(2, at=aY, label= axTexpr(2, aY), las=2)

----------

I hope this decreases your deception..
Further note that you can always call  box() after hist()
which may also improve the picture to your eyes.

Regards,
Martin Maechler

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

Reply via email to