Clear Filters
Clear Filters

How to add information in a figure already created

17 views (last 30 days)
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!

Answers (1)

KL
KL on 5 Oct 2017
Edited: KL on 5 Oct 2017
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 Comment
Steven Lord
Steven Lord on 5 Oct 2017
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')

Sign in to comment.

Categories

Find more on Specifying Target for Graphics Output in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!