Azzera filtri
Azzera filtri

linkaxes(ax,'x') + candle() + automatic adjustment of y limits of subplots

1 visualizzazione (ultimi 30 giorni)
I have a figure with two subplots, which share the same x range but have very different y ranges. I link the x axes with linkaxes(ax,'x'). If I zoom in on, say, the second subplot, the x limits on both plots are changed simultaneously. However, the y limits on the first plot are too wide now, hence I'd like Matlab to do an automatic adjustment/zoom of the y limits for the first subplot. I'd use
linkaxes(ax,'x')
set(ax,'ylimmode','auto')
and the ylims should be reset automatically every time I zoom in on any subplot. But... Matlab doesn't adjust YLim correctly. How can I fix this?
EDIT: In one of the subplots, I call the function candle(). This seems to cause the problems. When I replace candle() by plot(), everything is ok. How to make this work with candle()?

Risposte (2)

Azzi Abdelmalek
Azzi Abdelmalek il 20 Ott 2012
x=0:0.1:10;
ax(1)=subplot(2,1,1);
ax(2)=subplot(2,1,2);
plot(ax(1),t,sin(2*t))
plot(ax(2),t,2*sin(t))
linkaxes(ax,'x')
  4 Commenti
Herwig Peters
Herwig Peters il 20 Ott 2012
Ok, I've created a small example. Try zooming in on the second plot around x=500.
clear ax
n = 1000;
P.trend = [linspace(1,8,n/2)';linspace(8,2,n/2)'];
P.high = P.trend+rand(n,1);
P.low = P.trend+rand(n,1);
P.close = P.trend+rand(n,1);
P.open = P.trend+rand(n,1);
I.trend = linspace(7,3,n)';
I.high = I.trend+rand(n,1);
I.low = I.trend+rand(n,1);
I.close = I.trend+rand(n,1);
I.open = I.trend+rand(n,1);
ax(1) = subplot(2,1,1);
candle(P.high,P.low,P.close,P.open)
ax(2) = subplot(2,1,2);
candle(I.high,I.low,I.close,I.open)
linkaxes(ax,'x')
set(ax,'ylimmode','auto')

Accedi per commentare.


Ziad Sliti
Ziad Sliti il 4 Lug 2017
You just have to remove the command :
axis([xmin xmax ymin ymax])
and axis will be adjusted automatically.

Categorie

Scopri di più su Line Plots in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by