Hörmetjan Yiltiz
2015-Feb-12 14:08 UTC
[R] ggplot2 shifting bars to only overlap in groups
Hi all,
I have four factors for a continuous time variable along with its
confidence interval. I would like to produce a publication quality error
bar chart that is clear to understand. For now, I used colors, x axis
position, facets and alpha level to distinguish them.
I would like to overlap each pairs of bars with the same color a bit as a
group, but not overlap each and every bars with each other.
Here is a minimal example:
N = 32
df<- data.frame(gender=gl(2,1,N, c("male","female")),
direction=gl(2,2,N, c("up","down")),
condition=gl(4,4,N,
c("c1","c2","c3","c4")),
location=gl(2,16,N, c("east","west")),
t=rnorm(N, 1, 0.5),
ci=abs(rnorm(N, 0, 0.2)))
pp <-
ggplot(df, aes(x=gender, y=t, fill=condition, alpha=direction)) +
facet_grid(location~.) +
geom_bar(position=position_dodge(.9), stat="identity",
color="black") +
geom_errorbar(aes(ymin=t-ci, ymax=t+ci),
width=.2, # Width of the error bars
position=position_dodge(.9)) +
scale_alpha_discrete(range= c(0.4, 1))
pp
In the attachment, I have added the output figure, while manually editing
the SVG file to make the lower-left group of bars to make them as I wanted.
(The spacing in between each pair is not necessarily required.)
?Best
?
=======================He who is worthy to receive his days and nights is worthy
to receive* all
else* from you (and me).
The Prophet, Gibran Kahlil
I am gettting the error"
Error in rep_len(rep.int(seq_len(n), rep.int(k, n)), length) :
object 'N' not found
Also your image did not come through. Try sending it as a pdf file.
when I try to create
df<- data.frame(gender=gl(2,1,N, c("male","female")),
direction=gl(2,2,N, c("up","down")),
condition=gl(4,4,N,
c("c1","c2","c3","c4")),
location=gl(2,16,N, c("east","west")),
t=rnorm(N, 1, 0.5),
ci=abs(rnorm(N, 0, 0.2)))
John Kane
Kingston ON Canada
> -----Original Message-----
> From: hyiltiz at gmail.com
> Sent: Thu, 12 Feb 2015 22:08:36 +0800
> To: r-help at r-project.org
> Subject: [R] ggplot2 shifting bars to only overlap in groups
>
> Hi all,
>
> I have four factors for a continuous time variable along with its
> confidence interval. I would like to produce a publication quality error
> bar chart that is clear to understand. For now, I used colors, x axis
> position, facets and alpha level to distinguish them.
>
> I would like to overlap each pairs of bars with the same color a bit as a
> group, but not overlap each and every bars with each other.
>
> Here is a minimal example:
>
> N = 32
> df<- data.frame(gender=gl(2,1,N,
c("male","female")),
> direction=gl(2,2,N, c("up","down")),
> condition=gl(4,4,N,
c("c1","c2","c3","c4")),
> location=gl(2,16,N, c("east","west")),
> t=rnorm(N, 1, 0.5),
> ci=abs(rnorm(N, 0, 0.2)))
> pp <-
> ggplot(df, aes(x=gender, y=t, fill=condition, alpha=direction)) +
> facet_grid(location~.) +
> geom_bar(position=position_dodge(.9), stat="identity",
color="black") +
> geom_errorbar(aes(ymin=t-ci, ymax=t+ci),
> width=.2, # Width of the error bars
> position=position_dodge(.9)) +
> scale_alpha_discrete(range= c(0.4, 1))
> pp
>
>
>
> In the attachment, I have added the output figure, while manually editing
> the SVG file to make the lower-left group of bars to make them as I
> wanted.
> (The spacing in between each pair is not necessarily required.)
>
>
> ?Best
> ?
> =======================> He who is worthy to receive his days and nights
is worthy to receive* all
> else* from you (and me).
> The Prophet, Gibran
> Kahlil
> ______________________________________________
> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
> 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.
____________________________________________________________
Can't remember your password? Do you need a strong and secure password?
Use Password manager! It stores your passwords & protects your account.
Hörmetjan Yiltiz
2015-Feb-12 15:38 UTC
[R] ggplot2 shifting bars to only overlap in groups
You are most likely simply not running the whole lines of code: note that
the first line is:
N = 32
?Best
?
=======================He who is worthy to receive his days and nights is worthy
to receive* all
else* from you (and me).
The Prophet, Gibran Kahlil
On Thu, Feb 12, 2015 at 11:31 PM, John Kane <jrkrideau at inbox.com>
wrote:
> I am gettting the error"
> Error in rep_len(rep.int(seq_len(n), rep.int(k, n)), length) :
> object 'N' not found
>
> Also your image did not come through. Try sending it as a pdf file.
>
> when I try to create
> df<- data.frame(gender=gl(2,1,N,
c("male","female")),
> direction=gl(2,2,N, c("up","down")),
> condition=gl(4,4,N,
c("c1","c2","c3","c4")),
> location=gl(2,16,N, c("east","west")),
> t=rnorm(N, 1, 0.5),
> ci=abs(rnorm(N, 0, 0.2)))
>
> John Kane
> Kingston ON Canada
>
>
> > -----Original Message-----
> > From: hyiltiz at gmail.com
> > Sent: Thu, 12 Feb 2015 22:08:36 +0800
> > To: r-help at r-project.org
> > Subject: [R] ggplot2 shifting bars to only overlap in groups
> >
> > Hi all,
> >
> > I have four factors for a continuous time variable along with its
> > confidence interval. I would like to produce a publication quality
error
> > bar chart that is clear to understand. For now, I used colors, x axis
> > position, facets and alpha level to distinguish them.
> >
> > I would like to overlap each pairs of bars with the same color a bit
as a
> > group, but not overlap each and every bars with each other.
> >
> > Here is a minimal example:
> >
> > N = 32
> > df<- data.frame(gender=gl(2,1,N,
c("male","female")),
> > direction=gl(2,2,N, c("up","down")),
> > condition=gl(4,4,N,
c("c1","c2","c3","c4")),
> > location=gl(2,16,N, c("east","west")),
> > t=rnorm(N, 1, 0.5),
> > ci=abs(rnorm(N, 0, 0.2)))
> > pp <-
> > ggplot(df, aes(x=gender, y=t, fill=condition, alpha=direction)) +
> > facet_grid(location~.) +
> > geom_bar(position=position_dodge(.9), stat="identity",
color="black") +
> > geom_errorbar(aes(ymin=t-ci, ymax=t+ci),
> > width=.2, # Width of the error bars
> > position=position_dodge(.9)) +
> > scale_alpha_discrete(range= c(0.4, 1))
> > pp
> >
> >
> >
> > In the attachment, I have added the output figure, while manually
editing
> > the SVG file to make the lower-left group of bars to make them as I
> > wanted.
> > (The spacing in between each pair is not necessarily required.)
> >
> >
> > ?Best
> > ?
> > =======================> > He who is worthy to receive his days
and nights is worthy to receive* all
> > else* from you (and me).
> > The Prophet, Gibran
> > Kahlil
> > ______________________________________________
> > R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
> > 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.
>
> ____________________________________________________________
> Can't remember your password? Do you need a strong and secure password?
> Use Password manager! It stores your passwords & protects your account.
> Check it out at http://mysecurelogon.com/password-manager
>
>
>
[[alternative HTML version deleted]]