[R] Changing X axis of ggplot

Aren Cambre aren at arencambre.com
Wed Jan 4 03:57:14 CET 2012


Got it figured out. I found this post on the ggplot2 Google Group:
http://groups.google.com/group/ggplot2/browse_thread/thread/698e658b6dfec56c/5390824dab4a1cd7

It recommends you make this function:
lbl_formatter <- function(x) {
    h <- floor(x/60)
    m <- floor(x %% 60)
    s <- round(60*(x %% 1))  # Round to nearest second
    sprintf('%02d:%02d:%02d', h, m, s)
}

Then you assign it as the formatter using scale_x_continuous(formatter
= lbl_formatter).

Aren

On Mon, Jan 2, 2012 at 9:34 PM, Aren Cambre <aren at arencambre.com> wrote:
>
> Thanks to Joshua Wiley for turning me on to ggplot2.
>
> I am making a plot using this:
> p <- ggplot(dallas, aes(x = offense_hour)) + geom_bar() + coord_polar()
>
> Dallas is a data frame, and offense_hour is a column with chron
> objects from the chron library. In this case, the chron object was
> created with the times function. It is only a time (H:M:S) with no
> date attached.
>
> The plot shows up fine, but the X axis labels are 0.0 through 1.0. How
> do I convert this to 0:00 through 23:59 (or whatever may be
> appropriate given the breaks)?
>
> My searches lead me to scale_x_discrete, but I am not clear if that's
> even the right function.
>
> Aren



More information about the R-help mailing list