问题:在绘制条形图时,Matlab默认以颜色区分不同的立柱,然而
现实中我们偶尔会需要用填充图案来进行区分,如下图所示。
利用代码hatchfill.m可以实现上述需求,代码下载链接点击打开链接
调用方式为:
h=bar([tot11,tot12,tot13,tot14,tot15;tot21,tot22,tot23,tot24,tot25]);
hp = findobj(h,'type','patch');
hatchfill(hp(1),'single',45,3,'r');
hatchfill(hp(2),'single',180,3,'b');
hatchfill(hp(3),'single',135,3,'g');
hatchfill(hp(4),'cross',180,3,'m');
hatchfill(hp(5),'cross',135,3,'c');
set(gca,'FontSize',12);
set(gca,'xticklabel',{'4X4-16QAM','4X4-64QAM'});
% ylabel('SER','FontSize',12);
hh=legend('MMSE-PIC','传统MCMC,L=5X10','传统MCMC,L=5X10','本文MCMC,L=5X10','本文MCMC,L=10X10');
hpp=findobj(hh,'type','patch')
hatchfill(hpp(5),'single',45,3,'r');
hatchfill(hpp(4),'single',180,3,'b');
hatchfill(hpp(3),'single',135,3,'g');
hatchfill(hpp(2),'cross',180,3,'m');
hatchfill(hpp(1),'cross',135,3,'c');
grid on;
axis([-inf inf 0 inf])
其中,hatchfill()函数的参数分别为:
par1:句柄;
par2:填充格式:'single': single line;
'cross': double cross;
'speckle':。。。。;
par3:形状填充倾斜度:如横线对应180度,竖线对应0度;
par4:填充线之间的间距;
par5:颜色
上诉代码片段对应的图为