2013-04-27 80 views
0

您好我有在Matlab情節MATLAB堆積條形圖,顯示所有的值

CC_monthly_thermal_demand = [495 500 500 195 210 100 70 65 85 265 320 430]'; 
AD_monthly_thermal_generation_250 = [193 193 193 193 193 193 193 193 193 193 193 193]'; 
figure; 
bar(1:12,AD_monthly_thermal_generation_250) 
hold on 
bar(1:12,CC_monthly_thermal_demand,'r') 
set(gca,'XTickLabel',{'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug',' Sep', 'Oct', 'Nov',' Dec'},'FontSize',18) 
title('Seasonal Anaerobic Digestion (250kWe) Thermal Energy Supply to Demand - 2012','FontSize',22) 
ylabel('Thermal Energy (MWhe)') 
legend('250 kWth Supply','Thermal Energy Demand') 
grid on 
axis([0 13 0 600]) 

下面的代碼我試圖繪製一個堆積條形圖,顯示了每一個欄每個變量的顏色。但是,對於「AD_monthly_thermal_generation_250」值低於「CC_monthly_thermal_demand」值的條形圖,「AD_monthly_thermal_generation_250」色彩由「CC_monthly_thermal_demand」完全覆蓋,因此我看不到這些值。它能夠看到它們嗎?

謝謝

回答

0

結合的投入一起,使得每個系列是一列,然後使用選項'stack'

A = [495 500 500 195 210 100 70 65 85 265 320 430]'; 
B = [193 193 193 193 20 193 193 193 193 193 193 193]'; 
bar([B,A],'stacked') 

編輯尋址評論:

% Create random data and filler 
A  = randi(100,10,1); 
B  = randi(100,10,1); 
mxA = max(A); 
filler = mxA-A; 

% Plot stacked bar chart 
h = bar([A,filler,B],'stacked'); 

% Set the filler to transparent 
set(h(2),'Face','none','Edge','none') 

% Set y-labels 
yticks = linspace(0,max(B),5) + mxA; 
set(gca,'Ytick', [linspace(0,mxA,5) yticks(2:end)],'YtickL', [linspace(0,mxA,5) yticks(2:end)-mxA]) 

enter image description here

+0

是p可以這樣做,以便條形圖的y值與「A」和「B」中的數字相對應。我認爲你的建議確實顯示了每個欄的兩個值,但這些值並不代表「A」和「B」中的值。它的作用是在「B」之後開始計算「A」,所以你得到了條形頂部= A + B – user643469 2013-04-27 13:28:25

+0

感謝你的建議 - 看起來相當不錯。請讓我知道,如果我問的是不可能的(在一個圖表上有條)。 – user643469 2013-04-27 13:45:35

+0

你的意思是把酒吧**分組**嗎?像在酒吧([A,B])? – Oleg 2013-04-27 13:46:30