Contourf: fill inside instead of outside

23 Ansichten (letzte 30 Tage)
Marco Sammito
Marco Sammito am 7 Apr. 2019
Kommentiert: DGM am 26 Jul. 2024
Hi, how can I fill the area within the circle? At the moment Matlab fills the area outside. I would like the outside to be white and the inside to be filled. Thanks.
relamdt=-4:0.1:4;
imlamdt=-4:0.1:4;
[x,y]=meshgrid(relamdt,imlamdt);
axis square;
lamdt=x+i*y;
sig = (1 + lamdt);
v = [1,1];
contourf(x,y,abs(sig),v)
Screenshot_2019-04-08_09-54-58.png

Akzeptierte Antwort

Walter Roberson
Walter Roberson am 8 Apr. 2019
Bearbeitet: Walter Roberson am 8 Apr. 2019
contourf(x, y, -abs(sig), -v)
Alternately, possibly
[~,h] = contourf(x, y, abs(sig), v);
drawnow(); %seems to be needed to get NodeChildren created
bg = h.NodeChildren(2).ColorData;
h.NodeChildren(2).ColorData = uint8([255; 255; 255; 255]);
ax = ancestor(h,'axes');
ax.Color = bg;

Weitere Antworten (2)

David Wilson
David Wilson am 8 Apr. 2019
A quick hack (following the essence of your code) is
cmap = colormap; cmap(end,:) = [1,1,1]; colormap(cmap);
contourf(x,y,abs(sig),[0,1]);
axis square
  1 Kommentar
Marco Sammito
Marco Sammito am 8 Apr. 2019
It does not seem to affect anything. The area within the circle is still white: the outside is still green. I would like to invert these two. Inside=green, outside=white.

Melden Sie sich an, um zu kommentieren.


Roberto Tumolo
Roberto Tumolo am 26 Jul. 2024
What if one wants to extract the values shown inside and outside (suppose you don't know them because they come from a contour?
  1 Kommentar
DGM
DGM am 26 Jul. 2024
The way the question is posed makes it unclear what information we might have. From a contour()/contourf() object, we can know a set of discrete z-values associated with the given level curves, but unless we have access to the original zdata, we don't know the actual values between the level curves. If we don't have access to the object itself (e.g. if all we have is a saved figure as a raster image (a screenshot)), then things get more restricted.

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Graphics Performance finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by