Matlab图像函数之pie
一、pie
pie用于描绘平面饼图。
(1)pie(X)
利用向量X中的数据描绘饼图。
例如:
X = [1, 1, 2, 2, 3, 4, 5];
pie(X)
得到
注意,X中的数据被看做频数,饼图中比率的获得:X中的元素x[i]/sum(X).
当X中所有元素的和sum(X)< 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)
得到
使用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画饼图,只能在显示百分比和显示标签二者之间择其一,而不能同时显示,针对这个问题,一下代码有解释:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
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)
技术让梦想更伟大