[R] image function help required

Sarah Goslee sarah.goslee at gmail.com
Fri Sep 23 19:13:29 CEST 2011


Hi,

image() resizes the range of the data to roughly 0-1 , as you can see with
par()$usr

so what you need is:
axis(1, 1:5/5, colnames(x))
or something similar.
the c() c(colnames(x)) is unnecessary, since colnames(x) already returns a
character vector, but in the example you provided (thanks!), x doesn't have
any colnames any way.

Sarah

On Fri, Sep 23, 2011 at 1:03 PM, Maxim <deeepersound at googlemail.com> wrote:
> Hi,
>
>
> I have a question concerning the image function and how to generate custom
> axis labels:
>
>
>
> dat<-sample(0:1,1000,replace=T)
>
> matrix(dat,ncol=5,nrow=200)->x
>
> x[order(x[,1],x[,2],x[,3],x[,4],x[,5]),]->x
>
>
> I would like to have a heatmap kind of thing like this:
>
>
>
> image(t(x),col=c(0,1),axes=F)
>
> axis(1, 1:5, c(colnames(x)))
>
>
> I only do see parts of the axis (only an "A" is drawn, position is wrong in
> addition), what is wrong?
>
>
> For a normal xy-plot this type of axis-definition obviously works
>
>
> plot(1:5, rnorm(5), axes = FALSE)
>
> axis(1, 1:5, c(colnames(x)))
>
>
>
> What do I miss?
>
-- 
Sarah Goslee
http://www.functionaldiversity.org



More information about the R-help mailing list