MATLAB pcolor in MATLAB®

Learn how to make 7 pcolor charts in MATLAB, then publish them to the Web with Plotly.


Plot Four Faces with Four Colors

Create coordinate vectors X and Y and a colormap called mymap containing five colors: red, green, blue, yellow, and black.

X = [1 2 3; 1 2 3; 1 2 3]; Y = X'; mymap = [1 0 0; 0 1 0; 0 0 1; 1 1 0; 0 0 0];

Create matrix C that maps the colormap colors to the nine vertices. Four of the nine vertices determine the colors of the faces. Specify the colors at those vertices to make the faces red (1), green (2), blue (3), and yellow (4), respectively. Set the colors at the other vertices to black (5).

C = [3 4 5; 1 2 5; 5 5 5];

Plot the faces, and call the colormap function to replace the default colormap with mymap.

pcolor(X,Y,C)
colormap(mymap)

fig2plotly('TreatAs', 'pcolor')

Plot Hadamard Matrix

A Hadamard matrix has elements that are either 1 or -1`. A good way to visualize this matrix is with a two-color colormap.

Create a 20-by-20 Hadamard matrix. Then plot the matrix using a black and white colormap. Use the axis function to reverse the direction of the y-axis and set the axis lines to equal lengths.

C = hadamard(20);
pcolor(C)
colormap(gray(2))
axis ij
axis square

fig2plotly('TreatAs', 'pcolor')

Modify Borders

Create color matrix C. Then create a pseudocolor plot of C, and store the Surface object in the return argument s.

C = [1 2 3; 4 5 6; 7 8 9]; s = pcolor(C);

Change the border color by setting the EdgeColor property of s. Make the border thicker by setting the LineWidth property.

s.EdgeColor = [1 0.7 0.3];
s.LineWidth = 6;

fig2plotly('TreatAs', 'pcolor')

Interpolate Colors Across Faces

Create color matrix C. Then create a pseudocolor plot of C, and store the Surface object in the return argument s.

C = [5 13 9 7 12; 11 2 14 8 10; 6 1 3 4 15]; s = pcolor(C);

To interpolate the colors across the faces, set the FaceColor propery of s to 'interp'.

s.FaceColor = 'interp';

fig2plotly('TreatAs', 'pcolor')

Specify Semilogarithmic Grid

Create matrices X and Y, which define a regularly spaced grid of vertices. Calculate matrix LY as the log of Y. Then create matrix C containing alternating pairs of rows of color indices.

[X,Y] = meshgrid(1:20); LY = log(Y); colorscale = [1:20; 20:-1:1]; C = repmat(colorscale,10,1);

Plot X and LY, using the colors specified in C. Then adjust the tick labels on the y-axis.

s = pcolor(X,LY,C);
tickvals = LY(2:2:20,1)';
set(gca,'YTick',tickvals);

fig2plotly('TreatAs', 'pcolor')

Specify Parametric Grid

Create matrices X and Y, which define a regularly spaced grid of vertices. Calculate matrices XX and YY as functions of X and Y. Then create matrix C containing alternating pairs of rows of color indices.

[X,Y] = meshgrid(-3:6/17:3); XX = 2X.Y; YY = X.^2 - Y.^2; colorscale = [1:18; 18:-1:1]; C = repmat(colorscale,9,1);

Plot XX and YY using the colors in C.

pcolor(XX,YY,C);

fig2plotly('TreatAs', 'pcolor')

Specify Target Axes

Starting in R2019b, you can display a tiling of plots using the tiledlayout and nexttile functions. Call the tiledlayout function to create a 1-by-2 tiled chart layout. Call the nexttile function to create the axes objects ax1 and ax2. Create two pseudocolor plots by specifying the axes as the first argument to pcolor.

tiledlayout(1,2)

% Left plot
ax1 = nexttile;
C1 = rand(20,10);
pcolor(ax1,C1)

% Right plot
ax2 = nexttile;
C2 = rand(50,10);
pcolor(ax2,C2)

fig2plotly('TreatAs', 'pcolor')