Plot in a new figure

3 views (last 30 days)
Filippo
Filippo on 12 Mar 2012
Hi, I explain my problem; I have a figure with 8 subplots and i want that, when i click in a subplot of the figure with mouse, this plot should be copied in a new figure with no other plots. For the moment i do something like this:
set(gcf,'WindowButtonDownFcn',{@f_wbfcn})
function [] = f_wbfcn(varargin)
ch = get(gca,'children');
figure
copyobj(ch,axes);
The subplot is copied in a new figure, but i don't know how can i copy all the proprieties of the plot, like title, legend, label, text, etc... How can i fix it? Can anyone help me?

Answers (2)

Jacob Halbrooks
Jacob Halbrooks on 12 Mar 2012
With COPYOBJ, you should be able to specify the highest level object to copy, and then that object along with its children will be copied:
ax = axes;
plot(ax,1:10);
set(ax,'Color', [1 0 1]);
f=figure;
copyobj(ax, f);
My experience is that COPYOBJ will copy most properties correctly, but it will not copy callback functions, and there may be other follow-up work to do in the new figure, such as re-position a legend.

Filippo
Filippo on 15 Mar 2012
for the moment it's ok, but i have another question:how can i understand in witch subplot the user have clicked?There's an handle, a variable or something like?
  1 Comment
Matt Kindig
Matt Kindig on 15 Mar 2012
When you click on the subplot, the gca output will be the current axes (subplot). So
h=gca; %this is the handle to the current subplot

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!