surf and color bar does not show correct color gradient.

4 views (last 30 days)
The 'surf' command does not show the correct color gradient, e.g. for the 10x10 matrix below
0.0201 0.0201 0.0201 0.0201 0.0201 0.0201 0.0201 0.0201 0.0201 0.0201 0.0201
0.0149 0.0149 0.0149 0.0149 0.0149 0.0149 0.0149 0.0149 0.0149 0.0149 0.0149
0.0057 0.0057 0.0057 0.0057 0.0057 0.0057 0.0057 0.0057 0.0057 0.0057 0.0057
0.0010 0.0010 0.0010 0.0010 0.0010 0.0010 0.0010 0.0010 0.0010 0.0010 0.0010
0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
0 0 0 0 0 0 0 0 0 0 0
0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
0.0010 0.0010 0.0010 0.0010 0.0010 0.0010 0.0010 0.0010 0.0010 0.0010 0.0010
0.0057 0.0057 0.0057 0.0057 0.0057 0.0057 0.0057 0.0057 0.0057 0.0057 0.0057
0.0149 0.0149 0.0149 0.0149 0.0149 0.0149 0.0149 0.0149 0.0149 0.0149 0.0149
0.0201 0.0201 0.0201 0.0201 0.0201 0.0201 0.0201 0.0201 0.0201 0.0201 0.0201
it shows the figure like this
on the left and right it has same nodal values so it should show the same color gradient. Please help how to fix it.
Many Thanks in Advance.
Abdullah.

Accepted Answer

Mike Garrity
Mike Garrity on 19 May 2015
What's happening here is that you have FaceColor='flat'. In this case, it's using your 10x10 matrix as the Z values of the vertices. That means that it's creating a 9x9 grid of quadrilaterals. Because FaceColor='flat' wants to assign one color to each of those 81 quads, it doesn't use the last row and column of your data.
You might want to try FaceColor='interp', like this:
surf(mydata,'FaceColor','interp')
or create separate ZData and CData, like this:
myzdata = randn(10);
mycdata = randn(9);
surf(myzdata,mycdata)
Does that make sense?

More Answers (1)

Chad Greene
Chad Greene on 19 May 2015
Follow your plotting command with
shading interp

Categories

Find more on Discrete Data Plots in Help Center and File Exchange

Products

Community Treasure Hunt

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

Start Hunting!