Matlab图像函数之pie

一、pie

pie用于描绘平面饼图。

1pie(X)

利用向量X中的数据描绘饼图。

例如:

X = [1, 1, 2, 2, 3, 4, 5];
pie(X)

得到

注意,X中的数据被看做频数,饼图中比率的获得:X中的元素x[i]/sum(X).

X中所有元素的和sumX< 1.0时,图形不是整一个圆。如X = [0.1,0.2,0.3]时,得到

2.pie( X, {'...', '...', ...} )

X的意义同上,是数据向量,‘...’是标注。

例子:

X = [2,3,5];
pie(X,{'2','3','5'})

得到

二、pie3

pie3用于描绘三维饼图

例子:

X = [1,2,3];
pie3(X)

得到

matlab pie函数绘制动态饼图

使用pie等函数的第二个参数explode,设置某一个部分与主题的分离状态来强调重点。利用循环函数circshift可以实现饼的每一块分别跳跃凸显出来。

%%实现饼图每个部分的依次跳跃

x=[1 3 0.5 2.5 2];

explode=[0 1 0 0 0];

pie(x,explode);

axis off

for ii=1:10

    explode=circshift(explode,[0,-1]);

    pie(x,explode);

    pause(0,5);

end

    同样可以使用pie3函数3D显示效果

对Matlab中画饼图的函数pie的一点改进(同时显示标签及其百分比)

Matlab中用pie画饼图,只能在显示百分比和显示标签二者之间择其一,而不能同时显示,针对这个问题,一下代码有解释:

 1 clear,clc
 2 money=[5 10 7 15];%输入数据
 3 name={'George','Sam','Betty','Charlie'};%输入标签
 4 explode=[0 1 0 0];%定义突出的部分
 5 bili=money/sum(money);%计算比例
 6 baifenbi=round(bili*10000)/100;%计算百分比
 7 baifenbi=num2str(baifenbi');%转化为字符型
 8 baifenbi=cellstr(baifenbi);%转化为字符串数组
 9 %在每个姓名后加2个空格
10 for i=1:length(name)
11     name(i)={[name{i},blanks(2)]};
12 end
13 bfh=cellstr(repmat('%',length(money),1));%创建百分号字符串数组
14 c=strcat(name,baifenbi',bfh');
15 pie(money,explode,c)
View Code

原文地址:https://www.cnblogs.com/lihuidashen/p/3443678.html