MATLAB 栏文档说明如下:
bar(...,'style')指定条形的样式.'style'是'分组' 或 '堆叠'.默认显示模式为"分组".
但是,我想同时实现这两个目标.让我举一个例子来详细说明:
Y = [1.0 0.5 0.7
2.0 1.5 2.0
5.0 4.0 5.0
4.0 4.0 4.5
3.0 2.0 2.0];
bar(Y,'group');
Run Code Online (Sandbox Code Playgroud)
此代码生成以下分组的 bareries图,其中5个不同的3个条组合在一起:

bar([repmat(0.5,5,1) Y(:,1)-0.5],'stack');
Run Code Online (Sandbox Code Playgroud)
并且此代码仅使用上面定义的矩阵的第一列生成以下堆叠条形图Y:

我想合并这两个,以获得一个同时分组和堆叠的条形图.因此,期望的结果将像第一张图片一样,并且一组中的三个条中的每一个将像第二张图片那样堆叠.
我正在尝试在MATLAB中创建一个条形图,其中条形位置在一列中,条形高度在另一列中,并且当两个或多个位置重叠时条形堆叠.
为了说明,这里是使用ggplot在R中创建的相同图表:
library(ggplot2)
data <- data.frame(name=c('A', 'B', 'C', 'D', 'E', 'F'),
pos=c(0.1, 0.2, 0.2, 0.7, 0.7, 0.9),
height=c(2, 4, 1, 3, 2, 1))
ggplot(data, aes(x=pos, y=height, fill=name)) +
geom_bar(stat='identity', width=0.05)
Run Code Online (Sandbox Code Playgroud)
为了比较,在MATLAB中,相同的数据如下所示:
data = [ 0.1, 0.2, 0.2, 0.7, 0.7, 0.9; ...
2, 4, 1, 3, 2, 1]';
Run Code Online (Sandbox Code Playgroud)
但我无法弄清楚是否有一个参数组合bar来创建相同类型的堆积条形图.