如何在 MATLAB 中绘制单条堆积条形图?

Tho*_*sen 7 matlab bar-chart matlab-figure

如果我做一个

bar([1 2 3 4 5;2 3 4 5 1], 'stacked')
Run Code Online (Sandbox Code Playgroud)

我得到了与我的数据的两行相对应的两条堆叠值 - 正如我所料: 两柱堆积条形图示例

我希望能够类似地绘制只有一个条形的堆积条形图,但是如果我这样尝试

bar([1 2 3 4 5], 'stacked')
Run Code Online (Sandbox Code Playgroud)

我只是得到五个单独的酒吧 - 没有堆叠: 在此处输入图片说明

那么如何制作单条堆积条形图呢?

Dan*_*iel 5

(此解决方案需要 MATLAB 2019b)

引用文档:

bar(y) 为 y 中的每个元素创建一个条形图。如果 y 是 m×n 矩阵,则 bar 创建 m 组 n 条。

bar(x,y) 在 x 指定的位置绘制条形。

使用第一种语法,向量的每个元素都将成为它自己的条。使用第二种语法,x 定义了如何理解向量。在您的情况下,您需要一个堆叠的组:

bar(1,[1 2 3 4 5], 'stacked')
Run Code Online (Sandbox Code Playgroud)

为了比较,与Y=rand(1,5): 例子

  • 这适用于 R2019b;R2017b 中没有。所以这似乎是最近添加的 (3认同)
  • 语法 `bar(1,[1 2 3 4 5], 'stacked')` 不被接受。它给出错误“X 必须与 Y 的长度相同” (2认同)