Azzera filtri
Azzera filtri

Plot in a new figure

1 visualizzazione (ultimi 30 giorni)
Filippo
Filippo il 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?

Risposte (2)

Jacob Halbrooks
Jacob Halbrooks il 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 il 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 Commento
Matt Kindig
Matt Kindig il 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

Accedi per commentare.

Community Treasure Hunt

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

Start Hunting!

Translated by