2013-04-27 2 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') 

EDIT адресация комментарий:

% 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». Что он делает, так это то, что он начинает считать «A» после «B», и поэтому вы получаете верхнюю часть бара = A + B – user643469

+0

спасибо за ваше предложение - выглядит неплохо. пожалуйста, дайте мне знать, если то, что я прошу, невозможно (чтобы иметь бары на одной диаграмме). – user643469

+0

Вы хотите иметь бары ** сгруппированные **? Как в баре ([A, B])? – Oleg