MATLAB - 条形图



在 MATLAB 中创建条形图是可视化分类数据的一种基本方法。MATLAB 中的条形图通过不同高度的条形来表示分类数据。bar 函数用于创建这些绘图。

语法

bar(y)
bar(x,y)
bar(___,width)
bar(___,style)
bar(___,color)
bar(___,Name,Value)
bar(ax,___)
b = bar(___)

让我们详细了解一下语法 -

bar(y) - bar(y) 函数生成一个条形图,其中每个元素在数据集 y 中都对应一个条形。对于绘制单个条形集,将 y 作为包含 m 个元素的向量输入。这些条形在 x 轴上位于 1 和 m 之间。为了表示多个条形集,提供 y 作为矩阵,其中每一列表示一组不同的数据。

bar(x,y) - 将条形精确地放置在由 x 中的值指示的指定位置。

bar(___,width) - 允许调整相对条形宽度,影响组内条形之间的间距。将宽度定义为单个数值。将此功能与前面演示的任何输入参数组合结合使用。

bar(___,style) - 定义条形组的外观。例如,选择“stacked”以将每个组显示为具有多种颜色的单个条形。

bar(___,color) - 为所有条形提供统一的颜色。例如,指定“r”以表示红色条形。

bar(___,Name,Value) - 允许使用各种名称-值对参数自定义条形图属性。这些仅支持使用默认“grouped”或“stacked”样式的条形图。

bar(ax,___) - 该函数在由 ax 定义的坐标轴上绘制,而不是当前坐标轴 (gca) 上。ax 选项可以出现在前面演示的任何输入参数组合之前。

b = bar(___) - 生成一个或多个 Bar 对象。当 y 为向量时,将创建一个 Bar 对象。如果 y 为矩阵,则 bar 为每个序列生成一个 Bar 对象。在显示条形图后,使用 b 修改条形属性。

创建条形图

示例 1

在这里,让我们创建一个简单的条形图,如下例所示 -

y = [50, 85, 110, 135, 155, 180, 210, 230, 255, 280, 300];
bar(y)

现在,当您在 matlab 命令窗口中执行相同的操作时,输出为 -

bar graph

示例 2

在这里,我们将使用 x 和 y 向量来创建条形图,如下所示 -

x = 1900:10:2000;
y = [75 91 105 123.5 131 150 179 203 226 249 281.5];
bar(x,y)

此代码将生成一个条形图,其中条形表示几十年来的人口增长,其中 x 轴表示年份,y 轴表示以百万计的人口。

在 matlab 命令窗口中执行后的输出如下 -

matlab command window

示例 3

此示例显示了如何在条形图上使用宽度。我们将使用与上例中相同的 x 和 y 值。

x = 1900:10:2000;
y = [75 91 105 123.5 131 150 179 203 226 249 281.5];
bar(x,y, 0.2)

在 matlab 中执行后的输出为 -

matlab execution

示例 4:将条形组在一起

在此示例中,我们将沿 x 轴绘制 5 组三个条形。

Y = [5,2,1
     8,7,3
     9,8,6
     5,5,5
     4,3,2];

bar(Y)

执行后的输出为 -

bars together

示例 5:堆叠条形。

将条形堆叠在一起,并显示一个条形,其高度等于行的总和。

Y = [5,2,1
     8,7,3
     9,8,6
     5,5,5
     4,3,2];

bar(Y,'stacked')

执行后的输出为 -

stacked bars

示例 6:在条形图上显示负数据。

Y = [5,-2,1
   8,7,3
   -9,8,6
   5,5,-5
   -4,3,22];

bar(Y,’stacked’)

执行后的输出为 -

negative data

示例 7:为条形图着色

在下面的示例中,我们将为条形图提供绿色,如下所示 -

y = [50, 85, 110, 135, 155, 180, 210, 230, 255, 280, 300];
bar(y,'g')

在 matlab 命令窗口中执行后的代码如下 -

color to bar graph

示例 8:为条形图提供内部和轮廓颜色

下面的示例将使用 RGB 提供轮廓和内部颜色。

y = [50, 85, 110, 135, 155, 180, 210, 230, 255, 280, 300];
bar(y,'FaceColor',[0 .3 .2],'EdgeColor',[0 .7 .7],'LineWidth',1.8)

在 matlab 命令窗口中执行后的输出为 -

interior and outline

示例 9:带颜色图颜色的条形图

通过将 FaceColor 属性配置为“flat”来生成一个使用颜色图颜色的条形图。之后,为每个 Bar 对象的 CData 属性分配一个整数。

代码如下 -

A = [6 9 12; 13 45 7; 83 44 12];
b = bar(A,'FaceColor','flat');
for k = 1:size(A,2)
   b(k).CData = k;
end

在 matlab 中执行后的输出为 -

colormap colors
广告