首页 > 编程笔记 > MATLAB笔记 阅读:18

MATLAB pie()函数:绘制饼状图(附带实例)

饼图用来显示向量或矩阵中各元素所占的比率,它可以用在一些统计数据的可视化中。

MATLAB 中在二维情况下,创建饼图的函数是 pie();在三维情况下,创建饼图的函数是 pie3(),二者的调用格式非常相似,因此我们只给出 pie() 函数的调用格式及说明,如下表所示。

表:pie()函数调用格式及说明
调用格式 说明
pie(X) 用 X 中的数据画一张饼图,X 中的每一元素代表饼图中的一部分,X 中的每一个元素所代表的扇形大小通过 X(i)/sum(X) 的大小来决定。若 sum(X)≤1,则 X 中元素的值就直接指定了饼图扇区的面积。若 sum(X)<1,则画出一张不完整的饼图。
pie(X,explode) 将扇区从饼图偏移一定位置。explode 是一个与 X 同维的矩阵,当所有元素为零时,饼图的各个部分将连在一起组成一个圆,而其中存在非零元时,X 中相对应的元素在饼图中对应的扇区将向外移出一些来加以突出。
pie(X,labels) 指定扇区的文本标签。X 必须是数值数据类型。标签数必须等于 X 中的元素数。
pie(X,explode,labels) 偏移扇区并指定文本标签。X 可以是数值数据或分类数据类型。为数值数据类型时,标签数必须等于 X 中的元素数;为分类数据类型时,标签数必须等于分类数。
pie(ax,...) 将图形绘制到 ax 指定的坐标区中,而不是当前坐标区(gca)中。
p = pie(...) 返回一个由补片和文本图形对象组成的向量。

【实例 1】对于如下矩阵:


抽取它的第一列绘制完整的饼图、分离的饼图。MATLAB 程序如下:
>> close all                                       % 关闭当前已打开的文件
>> clear                                           % 清除工作区的变量
>> Y=[45 6 8;7 4 7;6 25 4;7 5 8;9 9 4;2 6 8];      % 输入矩阵Y
>> Y=Y(:,1)'                                       % 抽取矩阵Y的第一列
Y =
   45     7     6     7     9     2
>> subplot(1,3,1)                                  % 将视图分割为1×3的窗口,显示视图1
>> pie(Y)                                          % 绘制完整饼图
>> title('二维饼图')                               % 添加标题
>> subplot(1,3,2)                                  % 将视图分割为1×3的窗口,显示视图2
>> pie(Y,[1 1 1 1 1 1])                            % 偏移抽取的列元素对应的扇区
>> title('分离二维饼图')                           % 添加标题
>> subplot(1,3,3)                                  % 将视图分割为1×3的窗口,显示视图3
>> p=pie(Y);                                       % 绘制饼图,并返回饼图中由补片和文本图形对象组成的向量
>> t = p(4);                                       % 获取饼图的第4个标签句柄
>> t.BackgroundColor = 'cyan';                     % 设置标签背景底色
>> t.EdgeColor = 'red';                            % 设置标签的轮廓颜色
>> t.FontSize = 14;                                % 设置标签的字体大小
>> title('设置标签样式的二维饼形图')               %添加标题
运行结果如下图所示:


图 1 饼图

【实例 2】绘制矩阵的完整饼图、部分饼图。MATLAB 程序如下:
>> close all                     % 关闭当前已打开的文件
>> clear                         % 清除工作区的变量
>> X=[0.1 0.2 0.3 0.4];          % 创建向量X
>> Y=X(2:4);                     % 抽取向量X的第2~4个元素
>> labels = {'1','2','3','4'};   % 定义饼图标签
>> labels1 = {'1','2','3'};      % 定义分割饼图标签
>> ax1 =subplot(1,2,1);          % 创建一个坐标区对象ax1,便于修改坐标区
% 将坐标区对象ax1指定为绘图函数的输入,在特定的子图中绘制带指定标签的饼图
>> pie(ax1,X,labels)
>> title(ax1,'完整');            % 添加标题
>> ax2 =subplot(1,2,2);          % 创建一个坐标区对象ax2
% 将坐标区对象ax1指定为绘图函数的输入,在特定的子图中绘制带指定标签的分离饼图
>> pie(ax2,Y,labels1)
>> title(ax2,'部分');            % 添加标题
运行结果如下图所示:


图 2 饼图显示

相关文章