MATLAB如何绘制每组数量不一致柱状图
Posted slandarer
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MATLAB如何绘制每组数量不一致柱状图相关的知识,希望对你有一定的参考价值。
有人问我这样的图matlab能不能画:
可以通过多次绘图每次绘图的时候其他组使用nan占位置,之后删掉多余的面的方式实现每组柱状图柱子数量不一,例如:
Cnm=@(n,m)factorial(n)./factorial(m)./factorial(n-m);
NANn=@(n)(0:n).*nan;
% 由于只有一组数据没法画分组图,用nan占位
SE4=[Cnm(4.*ones(1,5),0:4);NANn(4);NANn(4)];
SE5=[NANn(5);Cnm(5.*ones(1,6),0:5);NANn(5)];
SE6=[NANn(6);NANn(6);Cnm(6.*ones(1,7),0:6)];
% 绘图并将句柄放在一个元胞数组里
bar4Hdl=bar3(SE4,'grouped');
hold on;
bar5Hdl=bar3(SE5,'grouped');
bar6Hdl=bar3(SE6,'grouped');
hdlSet=bar4Hdl,bar5Hdl,bar6Hdl;
% 调整坐标区域视角
ax=gca;
view(-72.1645,14.7584);
ax.Projection='perspective';
for i=1:3
for j=1:length(hdlSeti)
% 删掉多余的柱状图
tXData=hdlSeti(j).XData;
hdlSeti(j).XData=nan.*ones(size(hdlSeti(j).XData));
hdlSeti(j).XData((i-1)*6+1:i*6,:)=tXData((i-1)*6+1:i*6,:);
% 随机分配颜色
% hdlSeti(j).FaceColor=rand(1,3);
end
end
当然可以像原图中随机生成颜色:
最近属实太忙,发现再不写文章可能博客专家称号会被撤掉,先水一篇,之后会恢复更新频率的。
以上是关于MATLAB如何绘制每组数量不一致柱状图的主要内容,如果未能解决你的问题,请参考以下文章