其它坐标系下的二维曲线图:对数坐标图、极坐标图、条形图、直方图、扇形图、面积图、散点图、阶梯图、箭头图、罗盘图、羽毛图

绘制对数坐标图

x轴是10xsemilogx(x1,y1,选项1,x2,y2,选项2,…)
y轴是10ysemilogy(x1,y1,选项1,x2,y2,选项2,…)
x、y轴都是10x, 10yloglog(x1,y1,选项1,x2,y2,选项2,…)
用法和plot函数类似,下面做一下对比:
      绘制函数1/x的直角坐标图和三种对数坐标图。

>> x=0:0.1:10;
>> y=1./x;
>> subplot(2,2,1);
>> plot(x,y)
>> subplot(2,2,2);
>> semilogx(x,y)
>> subplot(2,2,3);
>> semilogy(x,y)
>> subplot(2,2,4);
>> loglog(x,y)
 

极坐标图

polar(theta,rho,选项)
其中,theta为极角,rho为极径,选项的内容与plot函数相同。
    按极坐标方程 ρ=1-sinΘ 绘制心形线和半径为2的圆。

>> t=0:pi/100:2*pi;     //绘制心形线
>> r=1-sin(t);
>> subplot(1,2,1);
>> polar(t,r)
>> subplot(1,2,2);     //接下来开始画圆
>> t1=0:pi/200:2*pi;
>> r1=t1./t1*2;      //为了确保r1和t1是一一对应的,如果只写r1=2,一个是向量一个是标量
>> polar(t1,r1)
 

再来和直角坐标系中plot函数画圆做一个对比:

>> t=0:pi/200:2*pi;
>> x=2*sin(t);
>> y=2*cos(t);
>> plot(x,y)

统计图

1.条形类图形

1. 条形图
二维垂直条形图:bar函数
二维水平条形图:barh函数
格式1:bar(y,style)
其中,参数y是数据,选项style用于指定分组排列模式,其类型有簇状分组 ‘grouped’堆积分组 ‘stacked’,默认是簇状分组。

>> y=[1:5;1,2,1,2,1;5:-1:1];
>> subplot(1,2,1);
>> bar(y)
>> title('Grouped')
>> subplot(1,2,2);
>> bar(y,'stacked')
>> title('Stacked')
 

格式2:bar(x,y,style)
其中,x存储横坐标,y存储数据。


>> x=[2015,2016,2017];
>> y=[68,80,115,98,102;75,88,102,99,110;81,86,125,105,115];
>> bar(x,y)
 

barh函数和bar函数格式一样,只不过barh函数是水平方向的,相当于bar函数顺时针旋转90°后的图表。

2. 直方图
直坐标系下的直方图:hist函数
极坐标系下的直方图:rose函数

hist函数 格式:
hist(y) 通常y是一个列向量,将y中的最小值和最大值之间的数据等分, 并统计落在每个区间的元素的个数,以元素个数为高度绘制条形图。
hist(y,x) x用于指定区间的划分方式。若x是标量,则表示均分成x个区间;若x是向量,向量x中的每个数指定分组中的中心值,元素的个数为数据分组数
当x缺省时,默认按10个等分区间进行统计,对应上面的hist(y)。

例:绘制服从高斯分布的直方图。

>> y=randn(500,1);    //产生500×1的列向量
>> subplot(2,1,1)
>> hist(y)
>> title('高斯分布直方图')
>> subplot(2,1,2)
>> x=-3:0.2:3;
>> hist(y,x)
>> title('指定区间中心点的高斯分布直方图')
 

rose函数 格式:
rose(theta,x) 其中参数 theta是一个向量,用于确定每一区间与原点的角度,绘图时将圆分成若干个角度相同的扇形区域,每一扇形区域三角形的高度反映落入区间的theta元素的个数,选项x是标量,用于指定区间的划分方式:若x是标量,则在[0,2π]区间内均匀划分成x个扇形区域;当x缺省时,默认均分20份。

>> y=randn(500,1);
>> theta=y*pi;    %参数theta只能是弧度单位的向量,乘以π变成弧度
>> rose(theta)

2.面积类图形

1. 扇形图
pie函数
格式:pie(x,explode)
其中,参数x存储待统计数据,选项explode控制图块的显示模式:

explde是与x同等大小的向量,其作用是将与参数x对应位置为非0值的部分从扇形图中分离出来。如果省略explode,饼图是一个整体。

例:某次考试优秀、良好、中等、及格、不及格的人数分别为5、17、23、9、4,试用扇形统计图作成绩统计分析。

>> score=[5,17,23,9,4];
>> pie(score)
>> legend('优秀','良好','中等','及格','不及格')
 

特别说明一下legend函数,注释部分初始化是遮挡一部分扇形图的,但可以用鼠标移动注释部分。

>> score=[5,17,23,9,4];
>> ex=[0,0,0,0,1];
>> pie(score,ex)
>> legend('优秀','良好','中等','及格','不及格','location','eastoutside')
 

explode是[0,0,0,0,1],非零部分对应x的不及格数据,所以其对应的扇形从扇形图中分离出来
legend函数中  ‘location’,‘eastoutside’ 是定位注释部分位置的,east说明在扇形的东边(右),outside说明不会覆盖扇形。

2. 面积图
area函数
area(x, y):该函数以参数x和y绘制面积图:相当于函数plot(x, y),并将0到y之间进行了填充。

>> x=[0:pi/100:2*pi];
>> y=sin(x);
>> subplot(1,2,1)
>> plot(x,y)
>> subplot(1,2,2)
>> area(x,y)

散点类图形

scatter函数:散点图
stairs函数:阶梯图
stem函数:杆图  (
三个函数的用法与plot函数相似,下面以scatter函数为例:
1. 散点图scatter(x,y,选项,‘filled’)

其中,参数x,y用于定位数据点,选项用于指定线型、颜色、数据点标记,其用法和plot函数中的相似,filled参数可有可无,如果没有则为空心点,有则为实心点

 
>> t=0:pi/100:2*pi;
>> x=16*sin(t).^3;
>> y=13*cos(t)-5*cos(2*t)-2*cos(3*t)-cos(4*t);
>> scatter(x,y,'rd','filled')
   

2. 阶梯图:stairs函数

>> x=[1:9];
>> y=[3,7,1,2,3,4,5,6,7];
>> stairs(x,y)
>> axis([0,10,0,10])

1.用法和plot函数类似,也可以绘制多条折线。
2.图形解释:当x=1时,y=3;x=2时,y= 7……然后将两者之间按照非垂直即水平的方式连线即得到阶梯图。
3.由于x坐标是[1:9],所以由plot函数的简化写法也可适用于stairs函数,即stairs(y)

矢量类图形

箭头图:quiver函数
罗盘图:compass函数
羽毛图:feather函数

1. quiver函数调用格式:quiver(x,y,u,v)
其中,(x,y)指定矢量起点坐标,(u,v)指定矢量终点坐标。

>> A=[4,5];B=[-10,0];
>> quiver(0,0,A(1),A(2))
>> hold
已锁定最新绘图
>> quiver(0,0,B(1),B(2))
>> C=A+B;   //仅限于在起始坐标为(0,0)的情况下,尾坐标相加得到矢量和
>> quiver(0,0,C(1),C(2))
>> axis([-12,6,-1,6])
>> grid
>> text(A(1),A(2),'A');text(B(1),B(2),'B');text(C(1),C(2),'C');

2. 罗盘图
罗盘图即为起点为坐标原点的二维或三维向量,同时还在坐标系中显示圆形的分隔线。实现这种作图的命令是compass,它的使用格式如下:
compass(X,Y)
参量X与Y为n维向量,命令显示n个箭头,箭头的起点为原点,箭头的位置为[X(i),Y(i)]

3. 羽毛图
羽毛图是在横坐标上等距地显示向量的图形,看起来就像鸟的羽毛一样。它的绘制命令是feather,该命令的使用格式如下:
feather(U,V)
显示由参量向量U与V确定的向量,其中U包含作为相对坐标系中的x成分,V包含作为相对坐标系

>> x=-pi:pi/10:pi;
>> y=sin(x);
>> subplot(1,2,1)
>> compass(x,y)
>> title('罗盘图')
>> subplot(1,2,2)
>> feather(x,y)
>> title('羽毛图')

猜你喜欢

转载自blog.csdn.net/HangHug_L/article/details/108208864