Thanks Arien & Jim for the useful tips.

I've used both methods suggested but am still not getting the desired results.

The problem with my actual data is that it contains several extreme values/outliers.The lab.breaks argument in image.plot() is able to assign a color to a specific range of value e.g. red = 0.9 to 1. But I also want to assign a color to any values which are > 1 (e.g. 1.10, 2.15, 25) and < 1 but I'm not able to do that unless i set the color scale to include the whole range of values - which does not look pretty.

My last resort is to do a small manipulation by using the if/ifelse function to assign a number to values that beyond a certain threshold before I plot them.


Muhammad



Jim Lemon wrote:
On 05/03/2010 04:10 AM, Muhammad Rahiz wrote:
Hi all,

I hope someone can help me with this.

Given,

library(fields)
x <- array(rnorm(100),dim=c(50,50))
image.plot(x)

I want to change the range in the color bar so that the range is from -1
to 1. I did adjust the image.plot() command to

image.plot(x,zlim=c(-1,1))

but the image shows white spaces.

How can I set the the color scale such that values which are less than -
1 are assigned a color e.g. blue and those which are more than 1 are
assigned red.

In essence, how do I make the color scale to reflect the a certain band
of values i.e.

color 1 = > 1
color 2 = 0.9 to 1
color 3 = 0.8 to 0.9
...
color 8 = -0.8 to -0.9
color 9 = -0.9 to -1
color 10 = < -1

Hi Muhammad,
The color.scale function in the plotrix package will translate numeric values into colors. for example:

imagecolors<-color.scale(x,c(0,1),0,c(1,0))

gives a very simple color scale going from blue at the minimum value to red at the maximum. Look at the examples in the color2d.matplot help page to see how you can do fancier color mappings.

Jim



_______________________________________________
R-sig-Geo mailing list
R-sig-Geo@stat.math.ethz.ch
https://stat.ethz.ch/mailman/listinfo/r-sig-geo

Reply via email to