[R] FW: R graphics

Achim Zeileis Achim.Zeileis at wu-wien.ac.at
Thu Aug 13 18:27:54 CEST 2009



On Thu, 13 Aug 2009, Mcdonald, Grant wrote:

>
> ________________________________________
> From: Mcdonald, Grant
> Sent: 13 August 2009 13:08
> To: r-help at R-project.org
> Subject: R graphics
>
> Dear sir,
>
> I am trying to create a barplot showing propotions,
>
> So my data is in the format of a vector containing 0s and 1s (i.e.successful or not) with a corresponding vector with two  catogorical levels.
>
> success        age
> 1                     old
> 0                    young
> 0                     young
> 1                     old
>
> I want to show a bar plot with a ylim=c(0,1) and an x-axis showing the two ages and the proportion of success only as filled bars.
>
> after making success a factor and plotting against age using: plot(success~age)
>
> the graphic shows age on the x and proportion on the yaxis as i want.  However for each age it shows the total proportion split into both success and failures.  I would however just like to show the prop successes without the failures stajed on top.

You can play around with the graphical parameters of ?spineplot. For 
example, I copied your data into a "dat.txt" file and read the data via

   ## read data
   dat <- read.table("dat.txt", header = TRUE)

   ## transform labels
   dat$successful <- factor(dat$successful, levels = 1:0, labels =
     c("success", "failure"))
   dat$maleage <- factor(dat$maleage, labels = c("old", "young"))

And then you can produce various types of plots changing color, labeling 
etc.

   ## simple spine plot
   plot(successful ~ maleage, data = dat)

   ## hide failures and suppress y-axis labels
   plot(successful ~ maleage, data = dat, col = gray(c(0.3, 1)),
     border = "transparent", yaxlabels = "")

Or you can also use barplot() and create this by hand:

   ## create table
   tab <- xtabs(~ maleage + successful, data = dat)

   ## simple barplot of success proportions
   barplot(prop.table(tab, 1)[,1])

   ## barplot with proportional x-axis and labeling etc.
   barplot(prop.table(tab, 1)[,1], width = margin.table(tab, 1),
     col = gray(0.3), space = 0.1, ylim = c(0, 1),
     ylab = "proportion of succsess")

hth,
Z

> data frame is below:
>
> successful	maleage
> 1	O
> 1	Y
> 1	Y
> 1	Y
> 1	O
> 1	O
> 1	Y
> 1	O
> 1	Y
> 1	O
> 1	O
> 1	Y
> 1	O
> 1	Y
> 1	Y
> 1	Y
> 1	O
> 1	O
> 1	Y
> 1	Y
> 1	O
> 1	Y
> 1	O
> 1	Y
> 1	Y
> 1	Y
> 1	O
> 1	Y
> 1	Y
> 1	O
> 1	Y
> 1	O
> 1	O
> 1	Y
> 1	O
> 1	Y
> 1	O
> 1	Y
> 1	Y
> 1	O
> 1	Y
> 1	Y
> 1	O
> 1	Y
> 1	Y
> 1	Y
> 1	O
> 1	O
> 1	Y
> 1	O
> 1	Y
> 1	Y
> 1	Y
> 1	Y
> 1	Y
> 1	Y
> 1	Y
> 1	Y
> 1	Y
> 1	O
> 1	Y
> 1	O
> 1	Y
> 1	Y
> 1	O
> 1	O
> 1	Y
> 1	Y
> 1	O
> 1	Y
> 1	O
> 1	Y
> 1	Y
> 1	Y
> 1	O
> 1	Y
> 1	O
> 1	Y
> 1	Y
> 1	Y
> 1	O
> 1	Y
> 1	O
> 1	Y
> 1	Y
> 1	O
> 1	Y
> 1	Y
> 1	O
> 1	O
> 1	Y
> 1	Y
> 1	Y
> 1	O
> 0	Y
> NA	O
> 0	O
> NA	Y
> 1	Y
> 1	O
> NA	O
> NA	Y
> 0	O
> NA	Y
> 0	O
> NA	Y
> 1	Y
> 1	O
> 0	O
> 0	Y
> NA	O
> 0	Y
> NA	O
> 0	Y
> 0	Y
> NA	O
> NA	O
> NA	O
> NA	Y
> NA	Y
> 0	O
> NA	O
> NA	Y
> NA	O
> 1	O
> 0	O
> 0	Y
> NA	O
> NA	Y
> 1	O
> 0	O
> 0	O
> 0	O
> NA	Y
> 0	O
> 0	Y
> NA	Y
> 0	O
> NA	O
> 0	Y
> NA	O
> 1	O
> 0	Y
> NA	O
> NA	O
> NA	O
> 0	O
> 0	O
> 0	O
> 0	Y
> 0	O
> 0	O
> 0	O
> 0	Y
> NA	O
> 0	Y
> 0	O
> NA	Y
> NA	O
> 0	O
> NA	Y
> NA	O
> 0	O
> NA	O
> NA	O
> 0	O
> NA	Y
> NA	O
> NA	Y
> 0	O
> NA	O
> 1	Y
> NA	Y
> NA	O
> 1	O
> 1	Y
> 0	O
> 0	Y
> 0	O
> 0	Y
> 0	Y
> 1	Y
>
> ______________________________________________
> 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.
>
>




More information about the R-help mailing list