Combining multiple MATLAB figures in one plot

How can I merge the three different saved matlab figures (plots) in one graph?

Answers (2)

Hi,
You can utilize “openfig()” for the purpose of opening a figure.
openfig()” by default opens the figure. The below approach shows how to merge 3 figures, but it also opens other individual figures themselves.
Here ‘fig1.fig’, ‘fig2.fig’ and ‘fig3.fig’ are 3 sample figures.
close all;
h(1) = openfig('fig1.fig');
h(2) = openfig('fig2.fig');
h(3) = openfig('fig3.fig');
hold on;
title('Final Merged Figure');
plot(h(1).Children.Children.XData, h(1).Children.Children.YData);
plot(h(2).Children.Children.XData, h(2).Children.Children.YData);
plot(h(3).Children.Children.XData, h(3).Children.Children.YData);
hold off;
If you do not want to see the plots of the individual figures, you can pass the parameter ‘invisible’ to “openfig()”.
close all;
h(1) = openfig('fig1.fig', 'invisible');
h(2) = openfig('fig2.fig', 'invisible');
h(3) = openfig('fig3.fig', 'invisible');
hold on;
k = gcf;
k.Visible = 'on';
title("Final Merged Figure");
plot(h(1).Children.Children.XData, h(1).Children.Children.YData);
plot(h(2).Children.Children.XData, h(2).Children.Children.YData);
plot(h(3).Children.Children.XData, h(3).Children.Children.YData);
hold off;
A similar question on accessing properties of a figure has been answered here

1 Comment

Hi,
I am trying to use your code but getting an error as
unrecognised method, property, or field 'XData' for class 'matlab.grapic.primitive.Data'.
Do you have any recomendation on that?

Sign in to comment.

kefei
kefei on 22 Jun 2022
Edited: DGM on 4 May 2024
you can use my figure2subplot.m function to copy each figure to one subplot in the target figure.
check this link for the function :

Categories

Find more on Printing and Saving in Help Center and File Exchange

Products

Release

R2019a

Asked:

on 4 Aug 2020

Edited:

DGM
on 4 May 2024

Community Treasure Hunt

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

Start Hunting!