【发布时间】:2019-06-01 22:53:39
【问题描述】:
我在 MATLAB 中有以下 2 个 y 轴的绘图代码。我很高兴 2 轴功能有效,但是,我想避免条形重叠。此外,右侧轴上的类别应该有不同的颜色,不仅是黄色,而且应该以某种方式清楚地表明它们是绘制在右侧轴上而不是左侧轴上。如何做到这一点?
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];
% Plot
values1 = [EONMW; RWEMW]';
values2 = [GermanByEON; GermanByRWE; EONGermanPortfolio; RWEGermanPortfolio]';
years1 = [years; years]';
years2 = [years; years; years; years]';
figure;
bar(years1,values1);
ylabel('Utilities generation portfolio in MW')
yyaxis right
bar(years2,values2);
legend('EON German portfolio in MW', 'RWE German portfolio in MW',...
'Percentage of German portfolio by EON', 'Percentage of German portfolio by RWE',...
'EON"s percentage of generation in Germany', 'RWE"s percentage of generation in Germany')
legend('Location','northwest')
ylabel('Utilities generation portfolio as percentages')
【问题讨论】:
-
好的,看看我的编辑!
-
编辑使问题更清晰,但是从(个人)数据可视化的角度来看,您在一个图中有 3 个不同的指标这一事实非常不清楚......请考虑只使用
subplot,您可以将数据拆分为堆叠图,以便它们在 x 轴上排列,但每个图的目的和内容更清晰。它还可以避免您陷入上述解决方法的困境,我不确定这对bar来说是否容易。所有yyaxis right条形图颜色相同的原因是您知道它们位于哪个轴上 - 否则您怎么知道? -
我不建议像这样绘制数据(即使使用@Dev-iL 的suggestion)。我看不出用 2 个 y 轴绘制这些条形图有什么好处,而不是使用 2 个垂直子图,年份对齐。如果它们无论如何都无法比较,为什么还要将它们绘制在一起?
标签: matlab plot bar-chart matlab-figure axis