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如何绘制每组数量不一致柱状图的主要内容,如果未能解决你的问题,请参考以下文章

QCharts绘制柱状图,柱高和y轴数据刻度不匹配

excel柱状图如何只改变柱子的间距而不改变柱子的宽度

echarts 柱状图 双值显示问题

echarts堆叠柱状图设置顶层的柱子设置圆角

JFreeChart如何实现柱状图 一个柱子有多段数据

如何excel 柱状图的柱子之间的距离靠近一些