Main Content

本页翻译不是最新的。点击此处可查看最新英文版本。

bar3h

水平三维条形图

  • Horizontal 3-D bar graph

说明

示例

bar3h(y)y 的元素创建一个水平三维条形图。每个条形对应于 y 中的一个元素。

  • 要绘制单个条形序列,请将 y 指定为向量。对于长度为 m 的向量,该函数在 z 轴上绘制条形,范围从 1 到 m。

  • 要绘制多个条形序列,请将 y 指定为矩阵,每个序列对应一列。对于 m×n 矩阵,该函数在 x 轴上(范围从 1 到 n)和 z 轴上(范围从 1 到 m)绘制条形。

示例

bar3h(z,y)z 中指定的 z 值处创建 y 中元素的水平条形图。

示例

bar3h(___,width) 设置沿 x 和 z 轴的条形宽度并控制组中各个条形的间隔。默认情况下,width0.8,条形之间有细小间隔。如果 width1,则组中的条形将紧挨在一起。支持上述语法中的任何输入参数组合,且可指定 width

示例

bar3h(___,style) 指定条形图的样式,其中 style 可以是 "detached""grouped""stacked"。默认样式为 "detached"

示例

bar3h(___,color) 使用 color 指定的颜色显示所有条形。例如,使用 "r" 指定以红色显示所有条形。

示例

bar3h(ax,___) 将图形绘制到 ax 指定的坐标区中,而不是当前坐标区 (gca) 中。选项 ax 可以位于上述语法中的任何输入参数组合之前。

示例

h = bar3h(___) 返回一个或多个 Surface 对象。如果 y 是向量,则 bar3h 将创建一个 Surface 对象。如果 y 是矩阵,则 bar3h 为每个序列返回一个 Surface 对象。显示条形图后,使用 h 设置条形的属性。有关属性列表,请参阅 Surface 属性

示例

全部折叠

y 指定为包含五个值的向量。将这些值绘制成一个水平三维条形序列,每个条形的高度对应于 y 中的一个值,其 y 轴位置对应于该值的索引。

y = [50 40 30 20 10];
bar3h(y);

Figure contains an axes object. The axes object contains an object of type surface.

y 指定为一个矩阵。创建一个 y 的水平三维条形图,每个序列对应于 y 中的一列。

y = [1 4 7; 2 5 8; 3 6 9; 4 7 10];
bar3h(y)

Figure contains an axes object. The axes object contains 3 objects of type surface.

z 指定为由 y 中条形的 z 轴位置组成的向量。在指定的 z 轴位置绘制条形。

z = [1950 1960 1970 1980 1990];
y = [16 8 4 2 1];
bar3h(z,y)

Figure contains an axes object. The axes object contains an object of type surface.

y 指定为包含四个序列的矩阵。使用 'grouped' 样式将每行的数据分组到一起绘制 y。要消除同一组的条形之间的间距,请将 width 设置为 1

y = [70 50 33 10; 75 55 35 15; 80 60 40 20];
bar3h(y,1,'grouped')

Figure contains an axes object. The axes object contains 4 objects of type surface.

创建一组范围从 0πz 坐标。将 z 值的正弦函数绘制成一个水平三维条形图。使用颜色设定 "r" 将条形设置为红色。

z = 0:pi/16:pi;
y = [sin(z')/4 sin(z')/2 sin(z')];
bar3h(z,y,1,"r")

Figure contains an axes object. The axes object contains 3 objects of type surface.

用条形样式 "stacked" 和条形宽度 0.5 绘制数据矩阵 y。将返回的 Surface 对象存储在 h 中。在本例中,h 包含四个元素,其中每个元素对应 y 中的一列。

请注意,bar3h 根据默认颜色图为每个序列着色。

y = [19 30 21 30; 40 16 32 12];
h = bar3h(y,0.5,"stacked");

Figure contains an axes object. The axes object contains 4 objects of type surface.

通过在 h 中设置对应对象的 FaceColor,自定义每个序列的颜色。

h(1).FaceColor = "k";
h(2).FaceColor = "white";
h(3).FaceColor = [.5 .7 .8];
h(4).FaceColor = [.9 .7 .8];

Figure contains an axes object. The axes object contains 4 objects of type surface.

自 R2019b 开始提供

您可以使用 tiledlayoutnexttile 函数显示分块图。调用 tiledlayout 函数以创建 1×2 分块图布局。调用 nexttile 函数以创建坐标区对象 ax1ax2。通过将坐标区对象指定为 bar3h 的第一个参数,在坐标区中创建单独的离散数据图。

在左侧坐标区中显示一个堆叠水平三维条形图。在右侧坐标区中显示相同数据的一个分组水平条形图。

tiledlayout(1,2)
y = [64 56 48; 49 42 35; 36 30 24];

% Left bar graph
ax1 = nexttile;
bar3h(ax1,y,0.5,"stacked")

% Right bar graph
ax2 = nexttile;
bar3h(ax2,y,1,"grouped")

Figure contains 2 axes objects. Axes object 1 contains 3 objects of type surface. Axes object 2 contains 3 objects of type surface.

输入参数

全部折叠

y 坐标,指定为向量或矩阵。y 的维度确定函数显示数据的方式。下表说明了最常见的情况。

表示形式如何指定 yz示例结果
显示一个条形序列。
  • 指定 yz 为相同长度的向量。z 中的值必须唯一,但 y 中的值不需要唯一。

  • 或者,仅指定 y 值。

定义向量 yz,然后创建一个水平三维条形图。

z = [1 2 3 4];
y = [10 20 30 40];
bar3h(z,y)

或者,仅指定 y 值。

bar3h(y)

Plot with four horizontal 3-D bars

显示沿 x 轴的多个条形序列。
  • z 指定为向量,将 y 指定为矩阵。z 中的元素数必须与 y 中的行数匹配。

  • 或者,只指定 y 矩阵。

定义向量 z 和矩阵 y,然后创建一个包含三个条形序列的水平三维条形图。

z = [1 2 3 4];
y = [1 5 9;
     2 6 10; 
     3 7 11;
     4 8 12];
bar3h(z,y)

或者,仅指定 y 值。

bar3h(y)

Plot with three series of four horizontal 3-D bars

数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | duration

z 坐标,指定为向量。z 的值不需要按顺序排列,但 z 的大小取决于 y 的大小以及您要如何显示数据。下表说明了最常见的情况。

表示形式如何指定 yz示例结果
显示一个条形序列。
  • 指定 yz 为相同长度的向量。z 中的值必须唯一,但 y 中的值不需要唯一。

  • 或者,仅指定 y 值。

定义向量 zy,然后创建一个水平三维条形图。

z = [1 2 3 4];
y = [10 20 30 40];
bar3h(z,y)

或者,仅指定 y 值。

bar3h(y)

Plot with four horizontal 3-D bars

显示沿 x 轴的多个条形序列。
  • z 指定为向量,将 y 指定为矩阵。z 中的元素数必须与 y 中的行数匹配。

  • 或者,只指定 y 矩阵。

定义向量 z 和矩阵 y,然后创建一个包含三个条形序列的水平三维条形图。

z = [1 2 3 4];
y = [1 5 9;
     2 6 10; 
     3 7 11;
     4 8 12];
bar3h(z,y)

或者,仅指定 y 值。

bar3h(y)

Plot with three series of four horizontal 3-D bars

数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | categorical | datetime | duration

条形宽度,指定为表示可用于每个条形的总空间的一部分的标量。默认值 0.8 表示条形宽度是从上一条形到下一条形之间的空间的 80%,两端各占该空间的 10%。如果宽度为 1,则组中的条形将紧挨在一起。

示例: bar3h([1 2 3],0.5) 创建使用 50% 可用空间的条形。

数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

分组样式,指定为 "detached""grouped""stacked"。分组样式确定多个条形序列相对于彼此的显示方式。如果 y 是向量,则样式不影响图外观。

下表显示每个分组样式选项的效果。

分组样式结果示例

"detached"

在对应的 x 和 z 值位置显示每个条形。

Horizontal 3-D bars evenly spaced on xz-plane

"grouped"

将每组显示为以对应的 z 值为中心的相邻条形。

Horizontal 3-D bars spaced into three distinct groups

"stacked"

将每组显示为一个多色条形。条形的长度是组中各元素之和。

Horizontal 3-D bars with vertical colored bands

条形颜色,指定为下表中的选项之一。

颜色名称短名称外观
'red''r'

Sample of the color red

'green''g'

Sample of the color green

'blue''b'

Sample of the color blue

'cyan' 'c'

Sample of the color cyan

'magenta''m'

Sample of the color magenta

'yellow''y'

Sample of the color yellow

'black''k'

Sample of the color black

'white''w'

Sample of the color white

坐标区对象。如果没有指定坐标区对象,则 bar3h 会在当前坐标区中创建条形图。

输出参数

全部折叠

显示的水平条形,以 Surface 对象的向量形式返回。在创建具体的水平条形序列后,可使用 h 中的元素访问和修改对象属性。返回的 Surface 对象的数量取决于 y 的大小。如果 y 是向量,则 h 是一个 Surface 对象。如果 y 是矩阵,则 h 是向量,其中包含的每个 Surface 对象都对应于 y 中一个列。

详细信息

全部折叠

条形序列

一个条形序列由对应于 y 中一个特定列的所有条形组成。bar3h 函数显示沿 x 轴不同位置的每个序列。默认情况下,每个序列均为不同颜色。

在下图中,第一个序列突出显示。

3-D horizontal bar graph with all bars at x=1 colored yellow

条形组

一个组由一个特定 y 位置上的所有条形组成。

在下图中,第三个组突出显示。

Horizontal 3-D bar graph with all bars at y=3 colored yellow

提示

  • 您可以通过更改返回的 Surface 对象的属性来修改绘制的条形。有关 Surface 属性列表,请参阅 Surface 属性

扩展功能

版本历史记录

在 R2006a 之前推出

全部展开