2017-03-01 21 views
10

Chcę utworzyć wykres słupkowy w programie Matlab, gdzie jedną z kategorii jest "przełamanie dachu" osi, przez ograniczenie osi Y, ale nie wiem, jak to zrobić. Kiedy zmienię górny limit na mniejszą wartość, pasek zostanie załadowany.Jak mogę przepełnić mój stos?

Co mogę zrobić?

Oto moje dane:

data = 
    115 116 97 99 107 NaN NaN NaN 
    111 118 101 114 102 108 111 119 

Chcę górna granica osi y być 600.

Oto, co starałem:

bar(data,0.5,'stack') 
ylim([0 600]) 

Oto demonstracja wynik:

stack not overflow

+0

badum-tssssssss –

+1

To było trochę trudne do zrozumienia tego, co chcesz zrobić, zanim widząc odpowiedź .. . –

+1

zadając pytanie o stackoverlow na przepełnieniu stosu - musisz docenić: D – Shai

Odpowiedz

12

Jedną z prostych opcji jest ustawienie właściwości clipping osi na off.

bar(data,'stack') 
colormap('lines') % make it colorfull :) 
bax = gca; % get axis handle 
bax.Clipping = 'off'; 
bax.YLim(2) = 600; % set the upper limit 

Dla lepszego wyniku, warto też kurczyć osie trochę, więc pasek pozostanie w rysunku. Ponadto jest ładniejszy bez boks osie:

top = bax.YLim(2); % before you change the limit 
bax.YLim(2) = 600; % set the upper limit 
bax.Position(4) = bax.Position(4)*(bax.YLim(2)/top); 
box off 

wynik:

stack overflow

+1

Dobrze wiedzieć! Nie pamiętam, jakbym używał tej własności 'clipping' w przeszłości –

Powiązane problemy