[R] image() with a vector

Steven Cordwell s.cordwell at uq.edu.au
Wed Feb 16 08:55:18 CET 2011


On Wed, 16 Feb 2011 05:16:07 pm Dieter Menne wrote:
> Steven Cordwell wrote:
> > However, transforming z into a matrix with two rows, where both rows are
> > the same as z above does seem to be a workaround.
> > 
> > z <- matrix(c(z,z),2,length(z),byrow=TRUE)
> > y <- c(0.25,0.75)
> > image(x,y,t(z),zlim=c(1,7),col=heat.colors(7),xlab="Year",ylab="Action",y
> > axt="n",xaxs="r",yaxs="r")
> > 
> > The problem is that when I include the figure that is produced in my pdf,
> > there ends up being a white line that runs through the middle
> > horizontally (where the divison of the cells is) which ruins the
> > presentation of
> 
> This looks more like a problem of pdf than one of image. Under Windows and
> current R, I cannot reproduce the line in the pdf, but we have seen this
> before. If you are sure that you have the current version of R installed,
> you could send in a bug report, but make sure sessionInfo() is included.
> 
> One workaround that worked for me in the past to use a CairoPDF as show
> below.
> Dieter
> 
> library(Cairo)
> CairoPDF(file="c:/tmp/Hello.pdf")
> x <- 0:20
> y <- 0.5
> z <- round(runif(21,1,7))
> z <- matrix(c(z,z),2,length(z),byrow=TRUE)
> y <- c(0.25,0.75)
> image(x,y,t(z),zlim=c(1,7),col=heat.colors(7),xlab="Year",ylab="Action",
>   yaxt="n",xaxs="r",yaxs="r")
> dev.off()

I agree, it probably does have something to do with the device. Actually, I'm 
using pgfSweave so it might be something there. Though the solution of making 
sure that the input to image() is a matrix fixes it.

On Wed, 16 Feb 2011 05:09:15 pm Peter Langfelder wrote:
> 
> try
> 
> image(x,y,as.matrix(z),zlim=c(1,7),col=heat.colors(7),xlab="Year",ylab="Act
> ion",yaxt="n",xaxs="r",yaxs="r")
> 
> as.matrix(vector) converts the vector into a 1-column matrix, which
> seems to be what you need.
> 
> Peter


Thanks

Steve



More information about the R-help mailing list