Matlab绘制圆饼统计图pie的用法详解

一、引言

在做数据可视化过程中,圆饼统计图因其直观效果好而被广泛采用。Matlab提供了pie和pie3来绘制圆饼统计图。为了让圆饼统计图显示的显示信息更丰富,可以增加某一块的分离突出显示,也可以显示数据项的标识符,或者突出显示某个数据项的标识符。

二、pie

基本语法:

pie(X)
pie(X,labels)
pie(X,explode)
pie(X,explode,labels)

其中X表示已知的数据,explode表示哪个或哪几个数据项需要突出显示,labels表示每个数据项的标识字符串,必须是字符向量元胞数组。
示例1:已知一组数据中每个数据项的次数,根据数据项的次数绘制预案并统计图

t=[ 1 5 3 ]
pie(t)

运行结果为:
在这里插入图片描述
示例2:在示例1的基础上增加数据项的标识

t=[ 1 5 3 ]
label = { 'dog', 'hot', 'log' };%此处必须是细胞数组 
pie( t, label )

运行结果为:
在这里插入图片描述
此时可以看到示例1运行结果中的百分比换为了数据项的标识。
示例3:在示例2的基础上突出显示第1项数据项的标识

t=[ 1 5 3 ]
label = { 'dog', 'hot', 'log' };%此处必须是细胞数组 
h = pie( t, label )%画图同时获得图形句柄
%对第一个数据项的标识进行突出显示
s = h(2);%对本题,句柄实际包含6项,其中偶数项是数据项的标识
s.BackgroundColor = 'b';
s.EdgeColor = 'r';
s.FontSize = 20;

运行结果为:

在这里插入图片描述
示例4:在示例1的基础上增加数据项3的突出显示

t=[ 1 5 3 ] 
ex = [ 0, 0, 1 ];%非0的位置突出显示
pie( t, ex )

运行结果为:
在这里插入图片描述
从运行结果可以看出数据项3突出显示了。

示例5:在示例2的基础上增加数据项1的突出显示

t=[ 1 5 3 ]
label = { 'dog', 'hot', 'log' };%此处必须是细胞数组 
ex = [ 1, 0, 0 ];%非0的位置突出显示
pie( t, ex, label )

运行结果为:
在这里插入图片描述
从运行结果可以看出数据项1突出显示了。

示例6:给定一组数据(数值型),统计其中没个数据项出现的次数,据此绘制圆饼统计图,
1)首先随机生成一组数据,并取整

t = rand( 1, 20 );
t = fix(t * 10);

2)统计不同的数据及其出现的次数

ua =  unique(t) %统计不同的数据
stat = hist( t, ua ) %统计每个数据出现的次数

3)绘制圆饼统计图

pie( stat )

4)在圆饼统计图上显示每个数据项的数字

utC = string( ut ) %将ut转换成字符串数组
dataC = cellstr( utC )%将字符串转换成字符向量元胞数组

5)绘制带有标识的圆饼统计图

pie( stat, utC )

6)指定某第三分之一位置的数据项突出显示

len = length( ut )
ex = zeros( size(ut) );
loc = fix( len / 3 )
ex( loc ) = 1;
pie( stat, ex, utC )

7)完整代码及运行结果如下:

clear all
clc
format compact
t = rand( 1, 20 );
t = fix(t * 10);
ut =  unique(t) 
stat = hist( t, ut ) 
pie( stat )
figure;
utC = string( ut )
dataC = cellstr( utC )
pie( stat, utC )
figure;
len = length( ut )
ex = zeros( size(ut) );
loc = fix( len / 3 )
ex( loc ) = 1;
pie( stat, ex, utC )

运行结果:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

三、pie3

其用法与pie用法一样,只是显示结果是三维图。
示例7:把示例2和示例4改用pie3实现

clear all
clc
t=[ 1 5 3 ]
label = { 'dog', 'hot', 'log' };%此处必须是细胞数组 
h1 = pie3( t, label )%画图同时获得图形句柄
%对第一个数据项的标识进行突出显示
s = h1(4);%对本题,句柄实际包含12项,其中第4、8、12项是数据项的标识
s.BackgroundColor = 'b';
s.EdgeColor = 'r';
s.FontSize = 20;

figure;
ex = [ 0, 0, 3 ];%非0的位置突出显示
h2 = pie3( t, ex, label )
%对第三个数据项的标识进行突出显示
s = h2(12);
s.BackgroundColor = 'y';
s.EdgeColor = 'r';
s.FontSize = 20;

运行结果:

在这里插入图片描述
在这里插入图片描述

  • 12
    点赞
  • 75
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值