How to add information in a figure already created
    조회 수: 12 (최근 30일)
  
       이전 댓글 표시
    
Imagine that I have a function like this
function somethingPlotted = plotSomething(x, y)
  somethingPlotted = plot(x,y);
end
if I write this:
x = 0:pi/100:2*pi;
y = sin(x); 
somethingPlotted = plotSomething(x, y)
my out put will be:
 somethingPlotted = 
Line with properties:
              Color: [0 0.4470 0.7410]
          LineStyle: '-'
          LineWidth: 0.5000
             Marker: 'none'
         MarkerSize: 6
    MarkerFaceColor: 'none'
              XData: [1×201 double]
              YData: [1×201 double]
              ZData: [1×0 double]
Show all properties

How can I modify the variable somethingPlotted in order to change the axis, adding legend, and adding more plots with different color in somethingPlotted?
What I really need is to go from here

to here

By modifying somethingPlotted
thanks in advance!
Regards!
댓글 수: 0
답변 (1개)
  KL
      
 2017년 10월 5일
        
      편집: KL
      
 2017년 10월 5일
  
      If this plot is the current figure then use gca, gcf. Even better is to output the axes and figure handle from your plotSomething function. For example,
[somethingPlotted, ax, fig] = plotSomething(x, y)
ax.Title.String = 'My Title';
댓글 수: 1
  Steven Lord
    
      
 2017년 10월 5일
				If all you have is the handle to the line, instead of using gca or gcf in a function I would use ancestor. This will ensure you get the axes or figure in which that line is located, not the last one on which the user clicked.
h = plot(1:10)
ax = ancestor(h, 'axes')
f = ancestor(h, 'figure')
f2 = figure;
isequal(gcf, ancestor(h, 'figure')) % false
% Changing gcf's Color makes f2 cyan
set(gcf, 'Color', 'c');
% Changing h's figure ancestor makes f black
set(ancestor(h, 'figure'), 'Color', 'k')
참고 항목
카테고리
				Help Center 및 File Exchange에서 Annotations에 대해 자세히 알아보기
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


