12.13 二维特殊图形函数

来源:互联网 发布:约瑟夫环 java 编辑:程序博客网 时间:2024/06/06 03:06

在MATLAB中,除了可以通过plot函数等绘制特殊图形外,还可以通过一些函数绘制柱状图,饼状图等特殊图形。常见的特殊二维图形函数

函数名              说明                                                                           函数名            说明   

area              填充绘图                                                                   fplot                     函数绘制

bar               条形图                                                                      hist                      柱状图

barh           水平条形图                                                                 pareto                Pareto图

comet       彗星图                                                                         pie                     饼图

errorbar     误差带图                                                                   plotmatrix            分散矩阵绘制

ezplot    简单绘制函数图                                                          ribbon                     三维图的二维条状显示

ezploar   简单绘制极坐标图                                                    scatter                     散射图

feather     矢量图                                                                       stem                      离散序列火柴杆状图

fill            多边形填充                                                                stairs                     阶梯图

gplot       拓扑图                                                                          rose                     极坐标系下的柱状图

compass   与feather类似的矢量图                                         quiver                 向量场


1.bar函数

bar函数用于绘制二维垂直条形图,用垂直条形显示向量或矩阵中的值,其调用格式如下:

bar(y):为每一个y中的元素画一个条状

bar(x,y):在指定的横坐标x上画出y,其中,x为严格单增的向量,如果y为矩阵,则bar函数分解成几个行向量,在指定的横坐标处分别画出。

                        (注意:如果y为矩阵,则向量x的长度必须和矩阵y的行数相同)

bar(....,'bar_color'):‘bar_color’定义条的颜色

bar(…,’grouped’) 使同一组直方条紧紧靠在一起;
bar(…,’stacked’) 把同一组数据描述在一个直方条上。

bar(axes_handle,...);将图形绘制到坐标轴句柄axes_handle中,而不是当前函数坐标轴句柄中。

barh():绘制水平条形图,其用法与bar一样;

例1.

y=[1 2 3 4 5 6 7 8 9];
>> figure
>> bar(y);



例2;

 x=-2:2;
y=[6 8 7 4 5;4 8 1 12 0;4 6 21 1 3];
subplot(2,2,1),bar(x,y','stacked'); %因为y是3*5的矩阵,所有必须转置才能使x的长度与y矩阵的行数一样,‘stacked’把数组在一个条形图上显示。
>> xlabel('x'),ylabel('\Sigma y');
>> legend('数据1','数据2','数据3');
>> subplot(2,2,2),bar(x,y','grouped'); %'grouped',使同一组直方条紧紧靠在一起.
>> xlabel('x'),ylabel('y');
>> legend('数据1','数据2','数据3');
>> subplot(2,2,3),barh(x,y','stacked'); %barh,绘制水平条形图,其他参数与bar一样,‘stacked’把数组在一个条形图上显示。。
xlabel('x'),ylabel('\Sigma y');
legend('数据1','数据2','数据3');
subplot(2,2,4),barh(x,y','grouped'); %'grouped',使同一组直方条紧紧靠在一起,barh,绘制水平条形图,其他参数与bar一样.
xlabel('x'),ylabel('y');
legend('数据1','数据2','数据3');




2.pie函数

pie函数用于绘制饼状形图,调用格式
pie(x):绘制参数x的饼图

pie(x,explode):explode是与x同维的矩阵,若其中有非零元素,x矩阵中相应位置的元素在饼图中对应的扇形将向外移出一些,加以突出。

pie(......,labels):labels用于定义相应块的标签。

pie(axes_handle,......):将图形绘制到坐标轴句柄axes_handle中,而不是当前坐标轴句柄中。

h=pie(...)  :返回绘制的饼图相关的句柄。


例3:

x=[1 5 0.5 3.5 2];
explode=[0 1 0 0 0];
>> subplot(2,1,1);
>> pie(x,explode) %绘制二维饼图,explode的长度必须和x相同;
>> subplot(2,1,2);
>> pie3(x,explode); %绘制三维饼图,explode的长度必须和x相同;


3.hist函数

hist函数用于绘制二维条形直方图,可以显示出数据的分布情况。所有向量y中的元素或者矩阵Y的列向量中的元素是根据他们的数值范围来分组的,每一组作为作为一个条形图来显示。条形直方图中的x轴反映了数据y中元素的数值范围,直方图的y轴显示出参量y中的元素落入该组的数目,调用格式如下:

n=hist(y):把向量y中的元素放到等距的10个条形中,且返回每一个条形图中的元素个数。若y为矩阵,则该命令按列对y进行处理。

n=hist(y,x):参量x为向量,把y中的元素放到m(m=length(x))个由x中指定的位置为中心的条形中。

n=hist(y,nbins):参量nbins为标量,用于指定条形的数目。

[n,xout]=hist(......):返回向量n与包含频率计数与条形图位置向量xout,可以用bar(xout,n)画出条形直方图。

hist(....):生成直方图但不产生输出;

hist(axes_handle,.....):将图形绘制到坐标轴句柄axes_handle中,而不是当前坐标轴句柄中。


例4:

x=-1:0.1:1;
>> y=randn(20,1);%随机生成20个-1到1的数
>> hist(y,x) %没有输出,直接生成直方图



4,scatter函数

scatter函数用于绘制散点图。调用格式
scatter(x,y):以x,y的值为横,纵坐标,绘制散点。


例5

x=[1 5 6 7 9 5 1 3 12 20];
>> y=[20 15 6 3 1 5 3 0 1 5 ];
>> subplot(1,2,1);
>> scatter(x,y);%绘制散点图
>> subplot(1,2,2);
>> scatter(x,y,'fill'); %'fill'绘制实点


0 0