subplot of already saved figures

조회 수: 476 (최근 30일)
Iyk
Iyk 2013년 8월 21일
답변: Md Modassir Firdaus 2022년 12월 30일
i have somany figures like dyke_tap, dyke_tbp,dyke_tcp and dyke_tdp...... they aare all bar plots and i want to have them side by side in other to compare them. i have seen ways of merging them, but that wont be good for what i want so i want to use a subplot. how can i use a subplot on already saved figures..... example ' having 'dyke_tap, dyke_tbp,dyke_tcp and dyke_tdp' side by side
  댓글 수: 2
David Sanchez
David Sanchez 2013년 8월 21일
what is the images extension? .fig? .png?
Iyk
Iyk 2013년 8월 21일
편집: Iyk 2013년 8월 21일
.fig

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

답변 (5개)

laurie
laurie 2013년 8월 21일
Here is a small bit of code that does just that for two saved figures. The figures need to be saved in the .fig format with this code (hgload only takes .fig figures as inputs), but there might be some way to adapt this code to make it work for other formats.
% Load saved figures
c=hgload('MyFirstFigure.fig');
k=hgload('MySecondFigure.fig');
% Prepare subplots
figure
h(1)=subplot(1,2,1);
h(2)=subplot(1,2,2);
% Paste figures on the subplots
copyobj(allchild(get(c,'CurrentAxes')),h(1));
copyobj(allchild(get(k,'CurrentAxes')),h(2));
% Add legends
l(1)=legend(h(1),'LegendForFirstFigure')
l(2)=legend(h(2),'LegendForSecondFigure')
  댓글 수: 11
Yunyu Hu
Yunyu Hu 2020년 5월 5일
This method works. But it does not copy the legend to the subplot

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


Farhad Sedaghati
Farhad Sedaghati 2015년 6월 22일
편집: Farhad Sedaghati 2015년 6월 22일
You can use the following function to insert all the saved fig files next to each other: http://www.mathworks.com/matlabcentral/fileexchange/51236-subplot

Jesica Gomez
Jesica Gomez 2017년 2월 20일
Hi, does it work for 3d graphs? I'm trying to use the code but it plots 2D graphs.
Thanks

Tasos Ampelas
Tasos Ampelas 2018년 8월 7일
Hi everyone,
In the @laurie 's first answer code, is there a way to get only the final figure and not every single one that I have loaded to matlab?

Md Modassir Firdaus
Md Modassir Firdaus 2022년 12월 30일
Hi everone,
You can try this code to create single figure having subplots. Here single plot is in subplot becouse it does not saved figure 1. First save the created plot then comment "savefig".
clc;
close all;
clear;
%%
z1=peaks;
z2=z1+randn(size(z1))/5;
figure(1)
surf(z1) %creating first figure
savefig('PeaksFile1.fig') % save the figure once then comment it
%%%%
figure(2)
surf(z2,'FaceColor','r') %creating second figure
savefig('PeaksFile2.fig')% save the figure once then comment it
%% Loading saved above figure
f1=hgload('PeaksFile1.fig');
f2=hgload('PeaksFile2.fig');
%% creating subplot
figure(3)
h(1)=subplot(1,2,1);
view(3)
grid on
h(2)=subplot(1,2,2);
view(3)
grid on
%%
copyobj(allchild(get(f1,'CurrentAxes')),h(1));
copyobj(allchild(get(f2,'CurrentAxes')),h(2));

카테고리

Help CenterFile Exchange에서 Legend에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by