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

4 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!

Translated by