# force axis to extend

6 messages
Open this post in threaded view
|

## force axis to extend

 Hi,  I'm creating a couple of mirrored bar plots.  Below is data and code for one. My problem is that I need the axis to go from -35 to 35 by 5.  I can't get that to happen with the code below.  I need it so all my plots are on the same scale. How can I do that using barplot? For reasons, I can't use ggplot or lattice. Thanks, Jen df <- data.frame(matrix(c( '18-29',        'Females',      23.221039, '30-44',        'Females',      16.665565, '45-59',        'Females',      7.173238, '60+',  'Females',      4.275979, '18-29',        'Males',        -22.008875, '30-44',        'Males',        -15.592936, '45-59',        'Males',        -7.312195, '60+',  'Males',        -3.750173), nrow=8, ncol=3, byrow=T, dimnames=list(NULL, c("Age", "Sex", "Percent")))) df\$Percent <- as.numeric(as.character(df\$Percent)) midf <- barplot(height = df\$Percent[df\$Sex == "Females"]) # distribution of men and women with solid fill plot(c(0,5),range(df\$Percent),type = "n", axes=FALSE, ann=F) barplot(height = df\$Percent[df\$Sex == "Females"], add = TRUE,axes = FALSE, col="#b498ec", ylab="") barplot(height = df\$Percent[df\$Sex == "Males"], add = TRUE, axes = F, col="#f8bb85", ylab="",         names.arg=c("18-29", "30-44", "45-59", "60+")) axis(side=2, at = seq(-35,35,by=5),      labels=format(abs(seq(-35,35,by=5)), scientific=F),      cex.axis=0.7)         [[alternative HTML version deleted]] ______________________________________________ [hidden email] mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-helpPLEASE do read the posting guide http://www.R-project.org/posting-guide.htmland provide commented, minimal, self-contained, reproducible code.
Open this post in threaded view
|

## Re: force axis to extend

 Hi Jen, It seems way too simple, but does this work? axis(side=2,at=seq(-35,35,by=5),cex.axis=0.7) You may want to consider using a pyramid plot for this. Jim On Thu, Mar 16, 2017 at 11:45 AM, Jen <[hidden email]> wrote: > Hi,  I'm creating a couple of mirrored bar plots.  Below is data and code > for one. > > My problem is that I need the axis to go from -35 to 35 by 5.  I can't get > that to happen with the code below.  I need it so all my plots are on the > same scale. > > How can I do that using barplot? For reasons, I can't use ggplot or > lattice. > > Thanks, > > Jen > > > > df <- data.frame(matrix(c( > '18-29',        'Females',      23.221039, > '30-44',        'Females',      16.665565, > '45-59',        'Females',      7.173238, > '60+',  'Females',      4.275979, > '18-29',        'Males',        -22.008875, > '30-44',        'Males',        -15.592936, > '45-59',        'Males',        -7.312195, > '60+',  'Males',        -3.750173), > nrow=8, ncol=3, byrow=T, > dimnames=list(NULL, c("Age", "Sex", "Percent")))) > > df\$Percent <- as.numeric(as.character(df\$Percent)) > > midf <- barplot(height = df\$Percent[df\$Sex == "Females"]) > > # distribution of men and women with solid fill > > plot(c(0,5),range(df\$Percent),type = "n", axes=FALSE, ann=F) > > barplot(height = df\$Percent[df\$Sex == "Females"], add = TRUE,axes = FALSE, > col="#b498ec", ylab="") > > barplot(height = df\$Percent[df\$Sex == "Males"], add = TRUE, axes = F, > col="#f8bb85", ylab="", >         names.arg=c("18-29", "30-44", "45-59", "60+")) > > axis(side=2, at = seq(-35,35,by=5), >      labels=format(abs(seq(-35,35,by=5)), scientific=F), >      cex.axis=0.7) > >         [[alternative HTML version deleted]] > > ______________________________________________ > [hidden email] 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. ______________________________________________ [hidden email] mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-helpPLEASE do read the posting guide http://www.R-project.org/posting-guide.htmland provide commented, minimal, self-contained, reproducible code.
Open this post in threaded view
|

## Re: force axis to extend

 Hi Jim, Thanks for replying. Unfortunately, that doesn't work.   The axis automatically scales to (-30, 25, by 5). Jen On Wed, Mar 15, 2017, 10:09 PM Jim Lemon <[hidden email]> wrote: > Hi Jen, > It seems way too simple, but does this work? > > axis(side=2,at=seq(-35,35,by=5),cex.axis=0.7) > > You may want to consider using a pyramid plot for this. > > Jim > > > On Thu, Mar 16, 2017 at 11:45 AM, Jen <[hidden email]> > wrote: > > Hi,  I'm creating a couple of mirrored bar plots.  Below is data and code > > for one. > > > > My problem is that I need the axis to go from -35 to 35 by 5.  I can't > get > > that to happen with the code below.  I need it so all my plots are on the > > same scale. > > > > How can I do that using barplot? For reasons, I can't use ggplot or > > lattice. > > > > Thanks, > > > > Jen > > > > > > > > df <- data.frame(matrix(c( > > '18-29',        'Females',      23.221039, > > '30-44',        'Females',      16.665565, > > '45-59',        'Females',      7.173238, > > '60+',  'Females',      4.275979, > > '18-29',        'Males',        -22.008875, > > '30-44',        'Males',        -15.592936, > > '45-59',        'Males',        -7.312195, > > '60+',  'Males',        -3.750173), > > nrow=8, ncol=3, byrow=T, > > dimnames=list(NULL, c("Age", "Sex", "Percent")))) > > > > df\$Percent <- as.numeric(as.character(df\$Percent)) > > > > midf <- barplot(height = df\$Percent[df\$Sex == "Females"]) > > > > # distribution of men and women with solid fill > > > > plot(c(0,5),range(df\$Percent),type = "n", axes=FALSE, ann=F) > > > > barplot(height = df\$Percent[df\$Sex == "Females"], add = TRUE,axes = > FALSE, > > col="#b498ec", ylab="") > > > > barplot(height = df\$Percent[df\$Sex == "Males"], add = TRUE, axes = F, > > col="#f8bb85", ylab="", > >         names.arg=c("18-29", "30-44", "45-59", "60+")) > > > > axis(side=2, at = seq(-35,35,by=5), > >      labels=format(abs(seq(-35,35,by=5)), scientific=F), > >      cex.axis=0.7) > > > >         [[alternative HTML version deleted]] > > > > ______________________________________________ > > [hidden email] 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. >         [[alternative HTML version deleted]] ______________________________________________ [hidden email] mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-helpPLEASE do read the posting guide http://www.R-project.org/posting-guide.htmland provide commented, minimal, self-contained, reproducible code.
Open this post in threaded view
|