On Nov 26, 2009, at 3:23 PM, Jonhnny Weslley wrote:

I have a file in the following format:

Scenario1 Scenario1CIL Scenario1CIU Scenario2 Scenario2CIL Scenario2CIU
60 57 62 45 48 50
110 101 111 51 50 52
120 117 122 64 62 66
192 190 194 79 75 79

where:
First  column  = Scenario1 mean value
Second  column  = Scenario1 Low Confidence Interval
Third  column  = Scenario1 Upper Confidence Interval
Fourth  column  = Scenario2 mean value
Fifth  column  = Scenario2 Low Confidence Interval
Sixth  column  = Scenario2 Upper Confidence Interval

Then, I tried this:

library(gplots)
data <- read.table("data.file", header=T, sep=" ")
legend <- c("line1","line2","line3","line4")

ci.l <- as.matrix(c(c(data$Scenario1CIL), c(data$Scenario2CIL)))
ci.u <- as.matrix(c(c(data$Scenario1CIU), c(data$Scenario2CIU)))

barplot2(as.matrix(c(c(data$Scenario1), c(data$Scenario2))), beside=TRUE,
       legend=legend, ylim=c(0, 200), main="Experiment X", ylab="Total
size",
       font.main=4, cex.axis=1.2, cex.lab=1.5, cex.names=1.5,
       plot.ci=TRUE, ci.l=ci.l, ci.u=ci.u, plot.grid=TRUE)

But this code doesn't group the values in Scenario1 and Scenario2, as
expected.
All plotted bars are joined side by side.

Considering the letter 'H' a bar, the expected result was: 'HHHH HHHH'
but the result of the above code was: 'HHHHHHHH' (no space between the
Scenario1's values and Scenario2'values) and no legends (Scenario1 and
Scenario2).

How I must to do?

Thanks in advance!


The data structures that you are passing to barplot2() are single column matrices. They need to be multicolumn matrices, where each column is a group and as per ?barplot2, the ci.l and ci.u arguments need to have the same structure as the height argument.

Thus:


> DF
  Scenario1 Scenario1CIL Scenario1CIU Scenario2 Scenario2CIL
1        60           57           62        45           48
2       110          101          111        51           50
3       120          117          122        64           62
4       192          190          194        79           75
  Scenario2CIU
1           50
2           52
3           66
4           79


height <- as.matrix(DF[, c(1, 4)])
ci.l <- as.matrix(DF[, c(2, 5)])
ci.u <- as.matrix(DF[, c(3, 6)])

> height
     Scenario1 Scenario2
[1,]        60        45
[2,]       110        51
[3,]       120        64
[4,]       192        79

> ci.l
     Scenario1CIL Scenario2CIL
[1,]           57           48
[2,]          101           50
[3,]          117           62
[4,]          190           75

> ci.u
     Scenario1CIU Scenario2CIU
[1,]           62           50
[2,]          111           52
[3,]          122           66
[4,]          194           79



library(gplots)

legend <- c("line1", "line2", "line3", "line4")

barplot2(height, plot.ci = TRUE, ci.l = ci.l, ci.u = ci.u,
         beside = TRUE, legend = legend, ylim = c(0, 200),
         main = "Experiment X", ylab = "Total size",
         font.main = 4, cex.axis = 1.2, cex.lab = 1.5,
         cex.names = 1.5, plot.grid = TRUE)


BTW, once you get the plot created, you may want to note some errors in your CI values.

HTH,

Marc Schwartz

______________________________________________
R-help@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.

Reply via email to