Я не уверен, что именно означают эти столбцы, и поэтому, возможно, я упустил точку на рисунке (что может быть главной проблемой здесь). Однако я нахожу этот способ представления не приятным и не вводящим в заблуждение, поскольку читателю требуются большие усилия, чтобы понять, какое значение принадлежит какому столбцу, а какое сопоставимо, а что нет.
То, что я предлагаю здесь, это не прямой ответ на техническую проблему (которую вы уже получили от @ Dev-iL), а другое решение для более основной проблемы - как визуализировать эти данные? Я верю, что если я пойму, что представляют цифры (в процентах от чего?) И что вы хотите подчеркнуть на этом графике, я смогу найти лучшее решение.
Сначала код:
EONMW = [100 399 500];
RWEMW = [200 996 120];
GermanByEON = [0.2 0.4 0.5];
GermanByRWE = [0.1 0.5 0.9];
EONGermanPortfolio = [0.7 0.2 0.1];
RWEGermanPortfolio = [0.8 0.3 0.6];
years = [2010 2012 2014].';
values1 = [EONMW; RWEMW].';
values2 = [GermanByEON; GermanByRWE; EONGermanPortfolio; RWEGermanPortfolio].'*100;
% Plot
colMap = mat2cell(lines(2),[1 1],3); % Choose your favorite colors
figure(2);
% upper plot:
subplot 211
b = bar(years,values1);
set(b,{'FaceColor'},colMap)
xticklabels({}) % remove the years labels, the bottom axes will show them
ylabel('Utilities generation portfolio in MW')
legend('EON German', 'RWE German',...
'Location','northwest')
% bottom plot
subplot 212
b = bar(years,values2);
set(b,{'FaceColor'},repmat(colMap,2,1)) % matching the colors by topic
set(b,{'FaceAlpha'},{1;1;0.6;0.6}) % distiguish between related mesures
xlabel('Year')
ylabel('Utilities generation portfolio (%)')
legend('German portfolio by EON', 'German portfolio by RWE',...
'EON''s generation in Germany', 'RWE''s generation in Germany',...
'Location','north')
Результат:
Основные вещи, которые я изменил:
- Разделить столбцы по единицам оси y, но выровнять их по оси x
- Соответствует цветам соответствующих столбцов между графиками
- Сократить легенды и ярлыки
Удачи!