how do I copy existing subplots and aggregate them into larger subplots
13 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
I have existing 2x1 grid subplots and would like to pair 2x1 subplots 2 of these plots side-by-side so it becomes a single 2x2 subplot. How can I do this and carry over each respective axes labels, titles, and legends to the new plot?
1 comentario
Geoff Hayes
el 13 de Ag. de 2016
Chris - can you provide a sample of the code that produces the 2x1 subplots? Also, can you provide an image of what the result is now versus what you would like to achieve?
Respuestas (4)
Kelly Kearney
el 16 de Ag. de 2016
If you don't have the code to reproduce the original figures (or if you simply prefer not to), you can use copyobj to copy the axes from one axis to another, and then simply change the position of those axes to match your desired subplot arrangement. In this example, I use a set of subplot axes ( h3.ax) as a template for the new positions of the copied axes ( h3.ax2).
% Your original figures
h1.fig = figure;
h1.ax(1) = subplot(2,1,1);
plot(rand(100,2), 'x');
h1.ax(2) = subplot(2,1,2);
plot(rand(100,2), 'o');
h2.fig = figure;
h2.ax(1) = subplot(2,1,1);
plot(rand(100,2), '+');
h2.ax(2) = subplot(2,1,2);
plot(rand(100,2), '.');
% The new one
h3.fig = figure;
h3.ax = gobjects(2);
for ii = 1:4
h3.ax(ii) = subplot(2,2,ii);
end
h3.ax = h3.ax';
h3.ax2 = gobjects(size(h3.ax));
h3.ax2(1,1) = copyobj(h1.ax(1), h3.fig);
h3.ax2(2,1) = copyobj(h1.ax(2), h3.fig);
h3.ax2(1,2) = copyobj(h2.ax(1), h3.fig);
h3.ax2(2,2) = copyobj(h2.ax(2), h3.fig);
for ii = 1:4
h3.ax2(ii).Position = h3.ax(ii).Position;
end
delete(h3.ax);
Benjamin
el 16 de Ag. de 2016
One way is to use getframe() and then plot the 2 frames as images side-by-side. Of course you will not be able to further edit them as figures.
0 comentarios
Chris Chow
el 16 de Ag. de 2016
Ver también
Categorías
Más información sobre Subplots en Help Center y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!