2016-06-08 97 views
2

在帶有兩個y軸的圖中,一個用於線圖(左)和一個用於條形圖(右),我想條形圖在折線圖下獲得更好的可見性而不是更高的可見性。繪製左軸上的線圖超過右軸上的條形圖

Evolution bar-chart line-plot

正如你可以在這張照片(我希望你能看到它)看到,條形圖顯示沉澱和不同的線葉綠素指數的演變進化,我的問題是,條形圖覆蓋線條,我希望線條更加精細。

這是我的腳本:

figure 
yyaxis right 
bar (meteo(:,1),meteo(:,14)); 
ylabel('Precipitation (mm)'); 
hold on 
for i=1:6; 
    a = []; 
    b = []; 
    color = ['r' 'm' 'b' 'c' 'g' 'y']; 
    for j=0:6 
     a(i,j+1)=matrice_5(j*6+i,1);%jour 
     b(i,j+1)=matrice_5(j*6+i,3);%moyenne  
    end 
     hold on 
     yyaxis left 
     plot(a(i,:),b(i,:),color(i),'LineWidth',1.5); 
end 
title('Evolution of the mean of the chlorophyll index (HNT) - Charlotte variety'); 
xlabel('Day (2013)') 
ylabel('Chlorophyll index (HNT)') 
axis([735390 735442 32 50]); 
set(gcf,'Position',[645 206 701 477]); 
datetick('x','dd mmm','keepticks') 
h=legend('0','50','100','150','200','250','precipitation','Location','best'); 
v = get(h,'title'); 
set(v,'string','Nitrogen rate in kg/ha'); 
set(h,'Position', [0.1793 0.1494 0.1127 0.2446]); 
hold on 
plot([735422 735422],[32 49],'Color',[.3 .3 .3]); 
hold off 

到現在爲止我只得到了結果的一半。我想把條形圖放在左邊的軸上(y軸左邊)和右邊的線條圖上。我想保留葉綠素指數在左邊。

謝謝您的幫助

回答

3

其實,這是一個真正偉大的問題,因爲真的是有這樣做的沒有明確記載方式,並在所有的例子,無論是在右軸上顯示在頂部。即使在這個example在他們自己的網站上,請注意他們多麼小心地將bar繪製在左側軸上。

因此作爲前言,yyaxis不會創建單獨的軸(如yyplot所用),而是rather just applies an additional NumericRuler to the same axes。如果它只是不同axes我們可以用uistack以我們想要的任何方式重新排列軸,但是因爲它們是相同的axes,所以我們需要仔細觀察一下控制z軸順序的屬性內容。

當我們看這些屬性時,yyaxis會自動將軸的SortMethod從其默認值depth更改爲children。這使得出現在左軸上的任何物體都低於添加到右軸上的任何物體。因此,我們需要做的就是修改SortMethod回到默認值(depth),然後排序依賴於z位置,就像它通常在axes內一樣。

所以,作爲一個示範,讓我們創建一些數據

days = 0:5:35; 
conc = [515 420 370 250 135 120 60 20]; 
temp = [29 23 27 25 20 23 23 17]; 

創建情節就像你一樣(一條線,與右邊的酒吧酒吧)

yyaxis right 
b = bar(days, temp, 'FaceColor', [0.8 0.8 0.8]); 
yyaxis left 
p = plot(days, conc, 'LineWidth', 2); 

enter image description here

現在,如果我們更改SortMethod它會將線條對象置於頂部。

set(gca, 'SortMethod', 'depth') 

enter image description here

+0

謝謝。我喜歡你的建議,它幾乎完成了這項工作。正如你在我的問題的圖片上看到的那樣,圖表中的每個條都以黑色包圍。所以當我應用你的代碼集(gca,'SortMethod','深度')。 劇情的線條超出條形圖的字體大小,但不會超出那些黑色條形邊框。任何想法爲什麼? Btw:你怎麼能像你在圖上做的那樣取出軸?你的條形圖沒有邊框? –

相關問題