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.