I have five figure in .Fig extension which i am creating after plotting 5 rows from a dataset. Now i want to Join these 5 figure into one figure in vertical allignemnt
1 次查看(过去 30 天)
显示 更早的评论
<<
>>
<<
>>
采纳的回答
Walter Roberson
2016-3-7
for each .fig, use openfig() to open the figure and return a handle to it. For each of those handles, h(K)
h_line = findobj(h(K), 'type', 'line');
line_ax = ancestor(h_line, 'axes');
title_obj = get(line_ax, 'title');
titles{K} = get(title_obj, 'string');
xlab{K} = get(line_ax, 'xlabel');
ylab{K} = get(line_ax, 'ylabel');
xdata{K} = get(h_line, 'xdata');
ydata{K} = get(h_line, 'ydata');
Once you have all of those, you can create a new figure and
for K = 1 : 5
ax = subplot(5,1,K);
plot(xdata{K}, ydata{K});
title(titles{K});
xlabel(xlab{K});
ylabel(ylab{K});
end
You can extend this if you need the tick marks to be specifically copied instead of automatically generated, or need special font, and so on.
2 个评论
Walter Roberson
2016-3-8
figfiles = {'1st electrode', '2nd electrode', '3rd electrode', '4th electrode', '5th electrode'};
for K = 1 : 5
h(K) = openfig( [figfiles{K} '.fig']);
h_line = findobj(h(K), 'type', 'line');
xdata{K} = get(h_line, 'xdata');
ydata{K} = get(h_line, 'ydata');
end
newfig = figure();
newax = axes('Parent', newfig);
xycell = [xdata(:), ydata(:)].';
line_handles = plot(xycell{:});
legend( line_handles, figfiles );
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Line Plots 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!