Imshow in MATLAB®

How to make Imshow plots in MATLAB® with Plotly.


Display Image of Matrix Data

Create matrix C. Display an image of the data in C. Add a colorbar to the graph to show the current colormap.

C = [0 2 4 6; 8 10 12 14; 16 18 20 22];
image(C)
colorbar

fig2plotly(gcf);
Click to copy

By default, the CDataMapping property for the image is set to 'direct' so image interprets values in C as indices into the colormap. For example, the bottom right pixel corresponding to the last element in C, 22, uses the 22nd color of the colormap.

Scale the values to the full range of the current colormap by setting the CDataMapping property to 'scaled' when creating the image.

C = [0 2 4 6; 8 10 12 14; 16 18 20 22];

image(C,'CDataMapping','scaled')
colorbar

fig2plotly(gcf);
Click to copy

Alternatively, you can use the imagesc function to scale the values instead of using image(C,'CDataMapping','scaled'). For example, use imagesc(C).

Control Image Placement

Place the image so that it lies between 5 and 8 on the x-axis and between 3 and 6 on the y-axis.

x = [5 8];
y = [3 6];
C = [0 2 4 6; 8 10 12 14; 16 18 20 22];
image(x,y,C)

fig2plotly(gcf);
Click to copy

Notice that the pixel corresponding to C(1,1) is centered over the point (5,3). The pixel corresponding to C(3,4) is centered over the point (8,6). image positions and orients the rest of the image between those two points.

Display Image of 3-D Array of True Colors

Create C as a 3-D array of true colors. Use only red colors by setting the last two pages of the array to zeros.

C = zeros(3,3,3);
C(:,:,1) = [.1 .2 .3; .4 .5 .6; .7 .8 .9];
Click to copy

Display an image of the data in C.

C = zeros(3,3,3);
C(:,:,1) = [.1 .2 .3; .4 .5 .6; .7 .8 .9];

image(C)

fig2plotly(gcf);
Click to copy

Modify Image After Creation

Plot a line, and then create an image on top of the line. Return the image object.

plot(1:3)
hold on
C = [1 2 3; 4 5 6; 7 8 9];
im = image(C);

fig2plotly(gcf);
Click to copy

Make the image semitransparent so that the line shows through the image.

plot(1:3)
hold on
C = [1 2 3; 4 5 6; 7 8 9];
im = image(C);

im.AlphaData = 0.5;

fig2plotly(gcf);
Click to copy

Read and Display JPEG Image File

Read a JPEG image file.

C = imread('ngc6543a.jpg');
Click to copy

imread returns a 650-by-600-by-3 array, C.

Display the image.

C = imread('ngc6543a.jpg');

image(C)

fig2plotly(gcf);
Click to copy

Add Image to Axes in 3-D View

Create a surface plot. Then, add an image under the surface. image displays the image in the xy-plane.

Z = 10 + peaks;
surf(Z)
hold on 
image(Z,'CDataMapping','scaled')

fig2plotly(gcf);
Click to copy