get children of a figure
조회 수: 56 (최근 30일)
이전 댓글 표시
I have a code below that highlights a defined region in a plot:
x = 1:24;
a = 1;
b = 50;
y = a + (b-1).*rand(length(x),1);
plot(x,y);
h = area([18 20],[max(y) max(y)]);
set(h,'FaceColor',[.5,.5,.5]);
set(h,'EdgeColor',[.5,.5,.5]);
h1 = get(h,'children');
set(h1,'FaceAlpha',0.3);
hold on;
plot(x,y);
hold off;
axis([min(x) max(x) min(y) max(y)]);
Although this works as intended, I am unsure about what get(h,'children') does. Could anyone clarify for me what it does and what is the numeric value it returns?
댓글 수: 0
채택된 답변
Walter Roberson
2012년 7월 22일
The return value of area() is a handle (an arbitrary double precision value with no inherent significance to the value, but which is used by MATLAB to refer to individual graphics objects.)
In current implementations, areaseries objects have a single child object that is the handle of a patch object, with the patch being in the shape of the area being filled.
The code takes advantage of the fact that patch objects happen to support transparency (when the OpenGL renderer is used), and sets the patch's transparency to 0.3 which is "fairly transparent" (the range being 0 as completely transparent, to 1 being completely opaque.)
댓글 수: 0
추가 답변 (1개)
Luffy
2012년 7월 21일
편집: Walter Roberson
2012년 7월 22일
get(h,'Children')
returns handles of children of current object,current object being figure object.
Handles provide the user with a way of identifying the graphics object that you want information about or whose information you want to alter.
Handles can be either integers or floating point numbers that MATLAB automatically generates for an object.
댓글 수: 0
참고 항목
카테고리
Help Center 및 File Exchange에서 Graphics Performance에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!