Plotting on .fig file (in new window if possible)

114 次查看(过去 30 天)
Hello,
I am trying to open a figure and plot additional data on it. The figure was given to me as a .fig file so I do not have the data to recreate it.
To open the file, I am using the following code:
fig = openfig('filename');
However that opens it in the script tab and not as a new figure window. How can I open it in a new figure window like all my other plots?
Once I have that opened (regardless of in new window or not), how do I plot on it?
I am trying
openfig('filename')
hold on
plot(x,y)
But that doesn't seem to be working.
Any help is greatly appreciated.
Thanks!
  4 个评论
Stephan
Stephan 2019-10-10
Upload the file means to attach the .fig file i guess- not a picture of it.

请先登录,再进行评论。

采纳的回答

Walter Roberson
Walter Roberson 2019-10-9
Figures are container objects that cannot be directly drawn to. You can only plot() into axes. Axes are contained inside figures or inside uipanels (or a small number of other container types.)
In order to draw, you will need to either select an existing axes or else create a new axes inside the figure.
%get the figure
fig = openfig('filename');
%pull out the right axes
fig_axes = findobj(fig, 'type', 'axes');
selected_axes_idx = 2; %set as appropriate for your purpose
ax = fig_axes(selected_axes_idx);
%do the additional drawing
hold(ax, 'on');
x = linspace(-2*pi,2*pi);
y1 = cos(x);
plot(ax, x, y1, 'color', 'b');
hold(ax, 'off');
  5 个评论
Walter Roberson
Walter Roberson 2019-10-10
I tested with the .fig you posted earlier, and it worked fine for me.
Which MATLAB release are you using?
JD
JD 2019-10-10
编辑:JD 2019-10-10
Hi Walter,
Ignore my previous comment about it not working. I had many other figures in my code and it was plotting it on those instead of the one I wanted to plot it on. So I created an empty script just for this section of the code.
Thanks so much for your help!

请先登录,再进行评论。

更多回答(1 个)

Ankit
Ankit 2019-10-9
Here is an example:
close all;
MySavedPlot = open('MySavedPlot.fig');
figure(MySavedPlot)
hold on
x = linspace(-2*pi,2*pi);
y1 = cos(x);
plot(x,y1,'color','b')

类别

Help CenterFile Exchange 中查找有关 Graphics Performance 的更多信息

产品

Community Treasure Hunt

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

Start Hunting!

Translated by