Hi, I want to copy few figures into a new figure with subplots. Hence as the initial step i intend to copy axes and legend information. In 2014b legend information saved as a object type.
% existing figure
h = surf(peaks);
colormap hsv
legend('temperature')
% new figure
fig = figure;
ax = axes;
new_handle = copyobj(h,ax);
colormap(fig,hsv)
view(ax,3)
grid(ax,'on')
How can I import the legend data and position to the new figure in matlab 2014b.

답변 (1개)

Vivek Jadye
Vivek Jadye 2014년 10월 4일

4 개 추천

It is quite easy to copy axes and corresponding legend to a new figure. All you have to do is to use copyobj function as follows.
If you want to copy a specific axes and corresponding legend to a new figure it could be done this way
% existing figure
h = surf(peaks);
colormap hsv
leg = legend('temperature'); %Store legend object for copying
ax = findobj(gcf,'type','axes'); %Retrieve the axes to be copied
% new figure
fig = figure;
copyobj([leg,ax],fig);
colormap(fig,hsv);
If you intend to copy every figure child to a new figure you can simply do the following.
% existing figure
h = surf(peaks);
colormap hsv
legend('temperature');
oldfig = gcf;
% new figure
fig = figure;
copyobj(oldfig.Children,fig);
colormap(fig,hsv);
Hope this helps.
Cheers!

댓글 수: 3

Rashmil Dahanayake
Rashmil Dahanayake 2014년 10월 6일
Hi, once the original figure is generated i don't have access to the variable "leg"-ie legend. In that case how would I specifically make a query to access legend properties and export that to a new figure.
Keith Rogers
Keith Rogers 2015년 7월 15일
Looks like you can get the legend handle for a particular axes object with syntax like "legh = legend(ax)"
You can also do legend(ax,'show') or legend(ax,'hide')
Phuc Thien NGUYEN
Phuc Thien NGUYEN 2016년 6월 28일
Great! It works perfectly. Thank you, Keith Rogers.

댓글을 달려면 로그인하십시오.

카테고리

제품

질문:

2014년 10월 4일

댓글:

2016년 6월 28일

Community Treasure Hunt

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

Start Hunting!

Translated by