I am using ggplot2 to make a boxplot that overlays a scatterplot:
pp = qplot(time, error, data=times, size=I(1), geom="jitter",
main=title,
ylab="Error (min)", xlab="Time before ON (min)",
alpha=I(1/10),
color=times$runway,
ylim=c(-30,40))
pp2 = pp + with(times, facet_wrap(~ runway, ncol=2))
print(pp2 + geom_boxplot(alpha=.5, color="blue",
outlier.colour="green", outlier.size=1))
The x variable is a factor for every minute from 0:60. My problem is
that ggplot2 labels every factor value on the x axis, and they overlap.
How can I make ggplot2 label only, say every 5th factor value on the x axis?
Thanks,
Jim
Hi Jim, See ?scale_x_discrete Best, Ista On Wed, Jun 8, 2011 at 3:26 PM, James Rome <jamesrome at gmail.com> wrote:> I am using ggplot2 to make a boxplot that overlays a scatterplot: > pp = qplot(time, error, data=times, size=I(1), geom="jitter", main=title, > ? ? ? ?ylab="Error (min)", xlab="Time before ON (min)", alpha=I(1/10), > color=times$runway, > ? ? ? ?ylim=c(-30,40)) > ? ?pp2 = pp + with(times, facet_wrap(~ runway, ncol=2)) > ? ?print(pp2 + geom_boxplot(alpha=.5, color="blue", > outlier.colour="green", outlier.size=1)) > The x variable is a factor for every minute from 0:60. My problem is > that ggplot2 labels every factor value on the x axis, and they overlap. > How can I make ggplot2 label only, say every 5th factor value on the x axis? > > Thanks, > Jim > > ______________________________________________ > R-help at r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code. >-- Ista Zahn Graduate student University of Rochester Department of Clinical and Social Psychology http://yourpsyche.org
I think the issue is that the x axis is a factor. How would ggplot2 know
which ones to drop? So it labels them all.
If I do the following, the labels get better:
pp = qplot(time, error, data=times, size=I(1), geom="jitter",
main=title,
ylab="Error (min)", xlab="Time before ON (min)",
alpha=I(1/10),
ylim=c(-30,40))
pp2 = pp + with(times, facet_wrap(~ runway, ncol=2))
+ scale_x_discrete(
breaks = c("0", "5", "10",
"15","20","25","30","35","40","45","50","55","60"),
labels=c("0", "5", "10",
"15","20","25","30","35","40","45","50","55","60"))
print(pp2 + geom_boxplot(alpha=.5, color="blue",
outlier.colour="green", outlier.size=1))
But this ruins the boxplot--I get one box instead of a box at every minute.
On 6/8/2011 3:59 PM, Ista Zahn wrote:
Hi James,
It's hard for me to see where the problem might be. Please post the
data using dput() or even better, make a simplified example that
illustrates the problem without all the other stuff going on. Chances
are that in the process of making a simplified example you will find
the problem yourself.
Best,
Ista
On Wed, Jun 8, 2011 at 3:41 PM, James Rome <jamesrome at passur.com>
wrote:
> I actually tried that, and get the same plot if I am using it properly:
>
> title=paste("Fitted RETA predictions for ", airport, "
the week of
> ", date, sep="")
> pp = qplot(time, error, data=times, size=I(1), geom="jitter",
> main=title,
> ylab="Error (min)", xlab="Time before ON (min)",
alpha=I(1/10),
> color=times$runway,
> ylim=c(-30,40))
> pp2 = pp + with(times, facet_wrap(~ runway, ncol=2))
> + scale_x_discrete(breaks = seq(from=0, to=60, by=5),
> labels=seq(from=0, to=60, by=5))
> print(pp2 + geom_boxplot(alpha=.5, color="blue",
> outlier.colour="green", outlier.size=1))
>
> The x-axis is unchanged.
>
> Thanks,
> Jim
> On 6/8/2011 3:31 PM, Ista Zahn wrote:
>
> Hi Jim,
>
> See ?scale_x_discrete
>
> Best,
> Ista
>
> On Wed, Jun 8, 2011 at 3:26 PM, James Rome <jamesrome at gmail.com>
wrote:
>
>> I am using ggplot2 to make a boxplot that overlays a scatterplot:
>> pp = qplot(time, error, data=times, size=I(1), geom="jitter",
main=title,
>> ylab="Error (min)", xlab="Time before ON
(min)", alpha=I(1/10),
>> color=times$runway,
>> ylim=c(-30,40))
>> pp2 = pp + with(times, facet_wrap(~ runway, ncol=2))
>> print(pp2 + geom_boxplot(alpha=.5, color="blue",
>> outlier.colour="green", outlier.size=1))
>> The x variable is a factor for every minute from 0:60. My problem is
>> that ggplot2 labels every factor value on the x axis, and they overlap.
>> How can I make ggplot2 label only, say every 5th factor value on the x
axis?
>>
>> Thanks,
>> Jim
>>
>> ______________________________________________
>> R-help at r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-help
>> PLEASE do read the posting guide
http://www.R-project.org/posting-guide.html
>> and provide commented, minimal, self-contained, reproducible code.
>>
>
>
On Wed, Jun 8, 2011 at 5:02 PM, James Rome <jamesrome at passur.com> wrote:> I think the issue is that the x axis is a factor.Rather the opposite I think. In the data you sent, time is numeric, not a factor. This works for me: qplot(factor(time), error, data=times, size=I(1), geom="boxplot") + facet_wrap(~ runway, ncol=2) + scale_x_discrete(breaks = seq(from=0, to=60, by=10)) Best, Ista How would ggplot2 know> which ones to drop? So it labels them all. > If I do the following, the labels get better: > ? ?pp = qplot(time, error, data=times, size=I(1), geom="jitter", > main=title, > ? ? ? ?ylab="Error (min)", xlab="Time before ON (min)", alpha=I(1/10), > ? ? ? ?ylim=c(-30,40)) > ? ?pp2 = pp + with(times, facet_wrap(~ runway, ncol=2)) > ? ? ? ?+ scale_x_discrete( > ? ? ? ? ? ?breaks = c("0", "5", "10", > "15","20","25","30","35","40","45","50","55","60"), > ? ? ? ? ? ?labels=c("0", "5", "10", > "15","20","25","30","35","40","45","50","55","60")) > ? ?print(pp2 + geom_boxplot(alpha=.5, color="blue", > outlier.colour="green", outlier.size=1)) > > But this ruins the boxplot--I get one box instead of a box at every minute. > > > On 6/8/2011 3:59 PM, Ista Zahn wrote: > > Hi James, > It's hard for me to see where the problem might be. Please post the > data using dput() or even better, make a simplified example that > illustrates the problem without all the other stuff going on. Chances > are that in the process of making a simplified example you will find > the problem yourself. > > Best, > Ista > > On Wed, Jun 8, 2011 at 3:41 PM, James Rome <jamesrome at passur.com> wrote: > >> I actually tried that, and get the same plot if I am using it properly: >> >> ? ?title=paste("Fitted RETA predictions for ", airport, " the week of >> ", date, sep="") >> ? ?pp = qplot(time, error, data=times, size=I(1), geom="jitter", >> main=title, >> ? ? ? ?ylab="Error (min)", xlab="Time before ON (min)", alpha=I(1/10), >> color=times$runway, >> ? ? ? ?ylim=c(-30,40)) >> ? ?pp2 = pp + with(times, facet_wrap(~ runway, ncol=2)) >> ? ? ? ?+ scale_x_discrete(breaks = seq(from=0, to=60, by=5), >> labels=seq(from=0, to=60, by=5)) >> ? ?print(pp2 + geom_boxplot(alpha=.5, color="blue", >> outlier.colour="green", outlier.size=1)) >> >> The x-axis is unchanged. >> >> Thanks, >> Jim >> On 6/8/2011 3:31 PM, Ista Zahn wrote: >> >> Hi Jim, >> >> See ?scale_x_discrete >> >> Best, >> Ista >> >> On Wed, Jun 8, 2011 at 3:26 PM, James Rome <jamesrome at gmail.com> wrote: >> >>> I am using ggplot2 to make a boxplot that overlays a scatterplot: >>> pp = qplot(time, error, data=times, size=I(1), geom="jitter", main=title, >>> ? ? ? ?ylab="Error (min)", xlab="Time before ON (min)", alpha=I(1/10), >>> color=times$runway, >>> ? ? ? ?ylim=c(-30,40)) >>> ? ?pp2 = pp + with(times, facet_wrap(~ runway, ncol=2)) >>> ? ?print(pp2 + geom_boxplot(alpha=.5, color="blue", >>> outlier.colour="green", outlier.size=1)) >>> The x variable is a factor for every minute from 0:60. My problem is >>> that ggplot2 labels every factor value on the x axis, and they overlap. >>> How can I make ggplot2 label only, say every 5th factor value on the x axis? >>> >>> Thanks, >>> Jim >>> >>> ______________________________________________ >>> R-help at r-project.org mailing list >>> https://stat.ethz.ch/mailman/listinfo/r-help >>> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html >>> and provide commented, minimal, self-contained, reproducible code. >>> >> >> >> > > > >-- Ista Zahn Graduate student University of Rochester Department of Clinical and Social Psychology http://yourpsyche.org