link x-axis from one figure with y-axis from another figure
23 次查看(过去 30 天)
显示 更早的评论
Dear reader,
I am looking for a matlab code that can link the x-axis from figure1 with the y-axis from figure2. I need this functionality in order to simplify the visual inspection of 2 figures. Any help is highly appreciated.
For example, this code links the x-axis of both figures:
x=1:5;
figure;
plot(x);
a1 = gca;
figure;
p2 = plot(x+1);
a2 = gca;
linkaxes([a1 a2],'x');
Notice that now, as the user pans/zooms on figure1, there will be an immediate consequence on figure2. How can I modify this code such that it links x-axis from figure1 to y-axis of figure2?
Thank you,
0 个评论
采纳的回答
Giorgos Papakonstantinou
2015-2-19
You could create a callback and then add a listener. So a minimal example would be:
CallBack:
function test(src, evt, ax)
set(ax, 'Ylim', get(gca, 'Xlim'))
end
Your figure:
x=1:5;
figure;
a1 = subplot(1,2,1);
plot(x);
a2 = subplot(1,2,2);
p2 = plot(x+1);
drawnow
xLimListener = addlistener( a1, 'XLim', 'PostSet', @(src,evt) test(src, evt, a2));
This example is on one figure. However, you can do the same with two figures.
0 个评论
更多回答(1 个)
Titus Edelhofer
2015-2-19
Hi,
using linkaxes (or the more general linkprop) this will not work, because only the same property can be linked. What should work is to use a zoom object:
x=1:5;
figure;
plot(x);
a1 = gca;
figure;
p2 = plot(x+1);
a2 = gca;
h = zoom(1);
h.ActionPostCallback = @(hFig, hAx) set(a2, 'ylim', get(a1, 'xlim'));
And vice versa for figure 2 ...
Titus
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Graphics Object Properties 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!