Plotting with true colors in an uneven grid

3 views (last 30 days)
I would like to plot data 1) on an uneven grid, with 2) a pre-defined RGB color for each grid cell, not an indexed colormap. pcolor allows 1) and image allows 2). But is there a function that lets me do both?
Here is an example:
%Data
x = 1:3; %Both pcolor and image
y = [1 2 4 8]; %Both
z = [1:12 repmat(NaN,1,8)]; %z data for pcolor
z = reshape(z,5,4);
[xmesh,ymesh] = meshgrid([x 4],[y 10]); %Mesh for pcolor
c = reshape(lines(12),4,3,3); %Colors for image
%Pcolor
figure;
pcolor(xmesh,ymesh,z);
title('pcolor: correct grid');
%Image
figure;
image(x,y,c);
set(gca,'YDir','Normal');
title('image: correct colors');
I realize that I could index my data relative to a colormap containing only the colors I want, but is there a more direct solution?

Accepted Answer

Sean de Wolski
Sean de Wolski on 7 Dec 2012
pcolor is just creating a surface so you could do this explicitly yourself and then view it in two dimensions:
surf(xmesh,ymesh,z,c);view(2) %c is color!
You will have to figure out how you want to handle NaN data though.

More Answers (1)

Image Analyst
Image Analyst on 7 Dec 2012

Categories

Find more on Colormaps in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!