surf plot of f(x,y). With gridlines, but more sparse than default

3 views (last 30 days)
Zaheer Ali
Zaheer Ali on 14 Dec 2021
Answered: Walter Roberson on 14 Dec 2021
surf(x,y,z) where z is oscillatory. Therefore x,y are 100x100. I want the gridlines (don't want to use flat or interp options). However, too many gridlines don't look good. Looking for a way to reduce gridlines by 50% or 75% etc. in both x and y coord.

Answers (2)

cr
cr on 14 Dec 2021
Edited: cr on 14 Dec 2021
s=surf(x,y,z)
Now use s.Parent.XTick and set it to a vector. E.g.
s.Parent.XTick = 0:2:10;
will make the X-grid 2units with limits of X from 0 to 10. Similarly s.Parent.Ytick may be used to set the y-grid spacing.

Walter Roberson
Walter Roberson on 14 Dec 2021
I suspect you are not talking about the "gridlines" as such: I think you are talking about the drawing of the edges of each face.
There is no direct way to control the drawing of the edges.
Use 'edgecolor', 'flat', and supply a 'CData' that includes a lof of NaN .
Use a different color for each edge based on the values in the CData property.
First you must specify the CData property as a matrix the same size as ZData.
The color value at the first vertex of each face (in the positive x and y directions)
determines the color for the adjacent edges.

Tags

Products


Release

R2020a

Community Treasure Hunt

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

Start Hunting!