直接给出代码如下:
A1=[0.78,0,0.22,0,0];
A2=[0.83,0,0.17,0,0];
A3=[0.55,0.2,0.25,0,0];
A4=[0.38,0.38,0.22,0.02,0];
A5=[0.11,0.59,0.29,0.01,0];
A6=[0.06,0.72,0.12,0.09,0.01];
A7=[0.02,0.56,0.27,0.12,0.03];
A8=[0.03,0,0.77,0.15,0.05];
A=[A1;A2;A3;A4;A5;A6;A7;A8];%定义目标数组
X=[1,2,3,4,5,6,7,8];%定义横轴
loca={'2013','2014','2015','2016','2017','2018','2019','2020'};%定义标注字符串
a=bar(X,A,0.4,'stacked');%绘制
set(gca,'XTickLabel',loca);%设置x轴标注
set(gca,'YTickLabel',{'0%','20%','40%','60%','80%','100%',''});%y轴标注
hold on;
grid on;
legend(a,'1.5MW','2MW','2.5MW','3MW','4MW','location','southoutside','orientation','horizontal');%下方外部居中标注
直接画图得到结果如下:
为了使得其更好看,可以利用如下代码段设置不同部分的颜色:
set(a(1),'facecolor',[0.85, 0.84, 0.86]);
set(a(2),'facecolor',[0.26, 0.45, 0.77]);
set(a(3),'facecolor',[0.21, 0.33, 0.64]);
set(a(4),'facecolor',[0.89, 0.88, 0.57]);
set(a(5),'facecolor',[0.98, 0.75, 0.00]);
MATLAB plot中画线的颜色通常是八种:
标记符 颜色
r - 红
g - 绿
b - 蓝
c - 蓝绿
m - 紫红
y - 黄
k - 黑
w - 白
但是线的颜色是由红绿蓝(RGB)三原色组成的,通过设定三原色的权重可以改变线的颜色,命令如下(x为横坐标,y为纵坐标):
color的域值为0—1
plot(x,y,'Color',[1 0 0]);代表红色
plot(x,y,'Color',[0 1 0]);代表绿色
plot(x,y,'Color',[0 0 1]);代表蓝色
plot(x,y,'Color',[0.3 0.8 0.9]);则是三种颜色组成的新颜色。
当需要以上常用的八种以外的颜色时,只要设置颜色中RGB的值就可以得到不同的颜色。
配色方案可以参考:matlab画图有什么好的配色方案? - 知乎 (zhihu.com)
增加如上代码后可以得到效果图如下