Whiteout/Remove some part of the contour plot

39 次查看(过去 30 天)
I use the built-in MATLAB function "scatterInterpolant" to plot a contour. The plot is shown below.
It's s stress contour and the ellipse is an empty space and there are no nodes inside the ellipse. I want the ellipse to be whiteout. Somehow I managed to set the values inside the ellipse to be zero (because I can't delete them) and I got the following result
I want the ellipse to be whiteout. Any sort of help is highly appreciated. Thanks in advance.
P.S. I use the fill command to fill the ellipse with white color but that's not a proper way to do it.

采纳的回答

Robert U
Robert U 2019-11-7
Hi Muhammad Usman,
instead of assigning Zero to the nodes you don't want to use, apply "nan"-Values. That will be treated as if there is no value assigned and will be plotted with white color.
x = -100:100;
y = -100:100;
inputData = rand(201);
inputData(abs(x)<=10,abs(y)<=10) = nan;
contourf(x,y,inputData,'LineStyle','none');
contourfPlot.png
Kind regards,
Robert

更多回答(1 个)

Muhammad Usman
Muhammad Usman 2019-11-7
Thank you very much sir for your kind response, but there is another problem I am encountering. As you can see in the figure below that it also whiteout some of the nodes outside the ellipse.
xyz.jpg
What do you think about that?
  8 个评论
Tamas Lanci
Tamas Lanci 2020-4-3
Is there any chance you can share your code Muhammad?
Muhammad Usman
Muhammad Usman 2020-4-13
编辑:Muhammad Usman 2020-4-13
F = scatteredInterpolant(xgrid, ygrid, plotcomp, 'nearest') ;
% plotcomp contains the values of stress etc at xgrid and ygrid i.e. mesh
[X,Y] = meshgrid(); % creat equally spaced rectangular mesh
Z = F(X,Y);
% then access the nodes of [X,Y] mesh grid which are inside the hole\ellipse
Z( " nodes inside the hole " ) = nan ;

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Surface and Mesh Plots 的更多信息

产品


版本

R2018b

Community Treasure Hunt

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

Start Hunting!

Translated by