matlab中主要有四个函数用于绘制条形图
bar() %绘制纵向的二维柱状图
barh() %绘制横向的二维柱状图
bar3() %绘制三维纵向条形图
bar3h()
e.g:
close all
clear
y1 = 100*rand(5,3)
subplot(211)
bar(y1,'grouped');
subplot(212)
bar(y1,'stacked','p',1)
饼状图是一种统计图形,通常用于显示每个元素占总体的百分比。在统计学中应用很频繁
pie3( )和 pie用法一致
我们来画几个饼~
e.g
close all
clear
x=[2,4,8,3];explode = [0 1 0 0 ];
subplot(211)
pie(x,explode)
subplot(212)
labels={'教授','副教授','讲师','助教'};
pie3(x,explode,labels)
colormap autumn
consequence
colormap是颜色色系,不仅可以在饼状图中应用,也可以 在后文的三维图形中应用
可以直接在Matlab中搜索
拖到比较下面就可以看到了:有很多选择~
常用的函数有:
用法基本和plot()一样,我们着重学习后文的mesh和surf,这里我们就 看一个例子就好。
close all
t = 0:pi/50 : 20*pi;
subplot(211)
plot3(sin(t), cos(2*t), sin(t) + cos(t),'-r' )
subplot(212)
plot3(sin(2*t),cos(t),2*cos(3*t) , ':b')
mesh()可以绘制出某一区间的完整的网格曲面
% 建立行向量x,列向量y:
x = -8 : 0.5 :8;
y = x' ;
% 第1条语句x的赋值为定义域,在其上估计函数、建立行向量x;
% 第2条语句建立列向量y。
% 生成X矩阵:按向量y的长度建立1_矩阵
X = ones( size(y) ) * x;
%生成Y矩阵:建立一个33 × 33重复列的Y矩阵,每列均为向量y
Y = y * ones( size(y) ) ' ; %产生Y的响应
%生成三维网格曲面图:
R = sqrt( X.^2 + Y.^2 ) + eps ; %计算各网格点的半径
Z = sin(R) ./ R; %计算函数值矩阵Z。
mesh( Z )
surf()函数也是MATLAB中常用的三维绘图函数
其一般调用格式如下:
为3D绘图生成X、Y矩阵。meshgrid()仅限于二维或三维Cartesian空间,meshgrid()更适合在二维或三维Cartesian空间解决问题
meshgrid()函数的语法如下:
EXAMPLE:
% 上例中的前4行用meshgrid()函数代替。
[X, Y]=meshgrid(-8:0.5:8)
R=sqrt(X.^2+Y.^2)+eps;
Z=sin(R)./R;
mesh(Z)
meshc()&mesh()的调用方式相同,只是该函数在mesh的基础上增加了绘制等高线的功能
EXAMPLE
[x,y] = meshgrid ( [-4: 0.5 :4] );
z = sqrt(x.^2 + y.^2);
% sqrt():求算数平方根
figure
meshc(z)
RESULT
meshz()&mesh()的调用方式也相同,
该函数增加了z轴铅垂线
EXAMPLE
[x,y] = meshgrid( [ -4 : 0.5 : 4] );
z = sqrt(x.^2 + y.^2 );
figure
meshz(z)
彗星图: 状如彗星的动画图。
其中:彗星头跟踪数据点的变化
彗星尾是彗星头后动态画出的拖曳(跟踪整个函数的实线)
调用:
EXAMPLES:
t = 0: 0.01 :2*pi;
x = cos(2*t).*(cos(t).^2);
y = sin(2*t).*(sin(t).^2);
comet(y)
figure
comet(x,y)
comet(x,y,t)