Dear Mailing list,

I want to plot a matrix using image() and on its side I want to give
information to every line of the matrix using colors. I tried to use
barplot, but cannot align the two plots. Code below. I succeed in doing
what I want using another image() plot, but was wondering whether there is
an easier way to do it.

Thank you so much!

Tiago

############# code

## matrix to plot
matI <- matrix(c(rep(1:3, 100), rep(4:6, 100), rep(7:9, 100)), nrow=3,
byrow=T)

## plot with three panels
layout(matrix(1:3, nrow=1), widths=c(1,1,1))

#  margins
mar1 <- c(1,1,1,1)
par(mar=mar1)

## plot matrix
image(x=(1:(ncol(matI)+1)), y=(1:(nrow(matI)+1)), t(matI), axes=F)
abline(h=c(1,100,200,300), xpd=NA)

## manually adjusting bottom and up par it lines up
## mar1 <- c(1.9,0,1.9,2)
## par(mar=mar1)
colorsBarPlot <- c(rep('green', 100), rep('blue', 100), rep('black', 100))
barplot(rep(1, 300), space=0, border=NA, col=colorsBarPlot, horiz=T, axes=F)

# it works but seems to cumbersome
codeCol <- as.numeric(as.factor(colorsBarPlot))
colsImage <- unique(colorsBarPlot)
colsBreaks <- sort(unique(c(codeCol-0.5, codeCol+0.5)))
image(matrix(codeCol, nrow=1), col=rev(colsImage), breaks=colsBreaks,
axes=F)

######### end of code

	[[alternative HTML version deleted]]

