[R] about image() function in R and colors

Mikkel Grum mi2kelgrum at yahoo.com
Fri Jul 8 11:01:50 CEST 2005

Javier, on the image and colors, did you try using the
breaks option? You will need 21 breaks to display 20
colors (see ?image).

Janek, the option asp = 1 should generally solve your
scaling problem (point 2 below). I don't remember
where I got that from, but it works unless you use
functions like abline which will take up the whole
plot region. Then you can adjust the plot region using

pin = c(diff(range(a*x)), diff(range(a*y)))

see ?par

Best wishes,

R] about image() function in R and colors
Tuszynski, Jaroslaw W. JAROSLAW.W.TUSZYNSKI at
Thu Jul 7 14:22:27 CEST 2005

    * Previous message: [R] Tables: Invitation to make
a collective package
    * Next message: [R] Kernlab: problem with small
    * Messages sorted by: [ date ] [ thread ] [
subject ] [ author ]

I do not know the solution to your problem, but I had
the similar problems
with image() function and most of derived functions.
It seems that 'image'
function was really not meant for displaying image
data, instead it was
designed to display matrices in the image format.
Matlab had the same
problem and ended up creating 2 functions: 'image'
(similar to R's 'image')
and 'imshow' (designed for displaying image data). 

There are three major processing steps in the 'image'
that are hard to
control or reverse:
1) scaling of the data intensities ( problem explained
by Javier). Scaling
is not much of a problem if continuous palette of
colors is used , or to
"?image" when "'col' is a list of colors such as that
generated by
'rainbow', 'heat.colors', 'topo.colors',
'terrain.colors' or similar
functions". However scaling causes problems in case of
color-maps (palettes).
2) scaling of the data dimensions so it fits in
default size window instead
of scaling of the window to fit the data. This results
in image with
non-square pixels. There might be a way to force
'image' not to scale
dimensions, I just did not spend much time looking for
it yet.
3) Flipping of the image. As "?image" shows one needs
to "transpose and flip
matrix horizontally" or perform
"image(t(volcano)[ncol(volcano):1,])" for
the image data to be visualized in proper orientation.

All those steps make sense in case of visualizing 2D
data, but they are a
hindrance in case of visualizing images.


 Jarek Tuszynski, PhD.                           o / \

 Science Applications International Corporation 
 (703) 676-4192                                   ">  
 Jaroslaw.W.Tuszynski at saic.com                    
`    \


-----Original Message-----
From: r-help-bounces at stat.math.ethz.ch
[mailto:r-help-bounces at stat.math.ethz.ch] On Behalf
Of javier garcia
Sent: Thursday, July 07, 2005 7:23 AM
To: R-Help
Cc: statsgrass at grass.itc.it
Subject: [R] about image() function in R and colors


I've got a map in R imported from a GIS (GRASS) as a
vector of factors.
So I've got 20 different levels in the map and I've
created a vector of
custom colors of exactly 20 colors in lenght.
I'm trying to use image()  (really plot.grassmeta()
that call image()) to
plot the map with those colors but it doesnt work and
the colors are

I would like that all points belonging to level1 are
color 1 , and so on...

Please could you tell me if this procedure is not

Best regards,


A. Javier Garcia
Water and Soil conservation department
Campus Universitario Espinardo
PO BOX 164
30100 Murcia (SPAIN)
Phone: +34 968 39 62 57
Fax: +34 968 39 62 13
email: rn001 at cebas.csic.es

R-help at stat.math.ethz.ch mailing list
PLEASE do read the posting guide!

    * Previous message: [R] Tables: Invitation to make
a collective package
    * Next message: [R] Kernlab: problem with small
    * Messages sorted by: [ date ] [ thread ] [
subject ] [ author ]


Stay connected, organized, and protected. Take the tour:

More information about the R-help mailing list