Plot in a new figure

7 ビュー (過去 30 日間)
Filippo
Filippo 2012 年 3 月 12 日
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?

回答 (2 件)

Jacob Halbrooks
Jacob Halbrooks 2012 年 3 月 12 日
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 2012 年 3 月 15 日
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 件のコメント
Matt Kindig
Matt Kindig 2012 年 3 月 15 日
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

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeSubplots についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by