Scale data and display image object


h = imagesc(...)


The imagesc function scales image data to the full range of the current colormap and displays the image. (See Examples for an illustration.)

imagesc(C) displays C as an image. Each element of C corresponds to a rectangular area in the image. The values of the elements of C are indices into the current colormap that determine the color of each patch.

imagesc(x,y,C) displays C as an image and specifies the bounds of the x- and y-axis with vectors x and y. If x(1) > x(2) or y(1) > y(2), the image is flipped left-right or up-down, respectively. If x and y are scalars, the image is translated to the specified location (x,y) such that the upper left corner of the image starts at (x,y).

imagesc(...,clims) normalizes the values in C to the range specified by clims and displays C as an image. clims is a two-element vector that limits the range of data values in C. These values map to the full range of values in the current colormap.

imagesc('PropertyName',PropertyValue,...) is the low-level syntax of the imagesc function. It specifies only property name/property value pairs as input arguments. See Image Properties for a list of the property names and their values.

h = imagesc(...) returns the handle for an image graphics object.


You can expand midrange color resolution by mapping low values to the first color and high values to the last color in the colormap by specifying color value limits (clims). If the size of the current colormap is 81-by-3, the statements

clims = [ 10 60 ]

map the data values in C to the colormap as shown in this illustration and the code that follows:

In this example, the left image maps to the gray colormap using the statements

load clown
axis image
title('Default CLim (= [1 81])')

The right image has values between 10 and 60 scaled to the full range of the gray colormap using the statements

clims = [10 60];
axis image
title('CLim = [10 60]')

This example shows how to shift the image starting from origin to a position (100, 100),

i = imread('eight.tif');
figure; subplot(2,2,1); imagesc(i);
axis([0 400 0 400]);
subplot(2,2,2); imagesc(100,100,i); 
axis([0 400 0 400]);

The figure output is as:

The top right corner of the image is now starting from (100,100) instead of the origin.

Passing vector values with the image scales the image to the specified size of 400–by–400.

figure; imagesc(1:400,1:400,i); 

More About

expand all


x and y do not affect the elements in C; they only affect the annotation of the axes. If length(x) > 2 or length(y) > 2, imagesc ignores all except the first and last elements of the respective vector.

imagesc creates an image with CDataMapping set to scaled, and sets the axes CLim property to the value passed in clims.

You cannot interactively pan or zoom outside the x-limits or y-limits of an image.

By default, imagesc plots the y-axis from lowest to highest value, top to bottom. To reverse this, type set(gca,'YDir','normal'). This will reverse both the y-axis and the image.

See Also



Was this topic helpful?