1 曲线图绘制
(1)单坐标plot
X=0:0.2:10;
Y=rand(51,1);%返回一个 51×1 的随机数矩阵
figure
plot(X,Y,"bo-")
xlabel('X-lable')
ylabel('Y-lable')
legend({'rand'},'Location','northeast')
x = linspace(-2*pi,2*pi);
y1 = sin(x);
y2 = cos(x);
figure
plot(x,y1,'r--o',x,y2,'b*')
legend({'sin(x)','cos(x)'},'Location','northwest','NumColumns',1)
(2) 双坐标plotyy
把具有不同量纲,不同数量级的两个函数绘制在同一个坐标中
figure(8)
x1 = 0:0.01:2*pi;
x2 = x1;
y1 = sin(x1);
y2 = cos(x1);
plotyy(x1,y1,x2,y2)
(3) 符号函数:fplot&ezplot
显函数:
ezplot(’ f(x)‘);
ezplot( ’ f(x)‘, [xmin xmax]);
ezplot( ’ f(x)‘, [xmin xmax], figure);
其中,fun 代表一个字符串,用来表示要画的基本表达式。选择性参数[xmin,xmax]指定自变量的取值范围。如果它不存在的话,函数自变量的范围从-2π到 2π。选择性参数图来用指定图象数。
隐函数:
ezplot('f(x,y)',[xmin,xmax,ymin,ymax])
参数方程:
ezplot('x(t)','y(t)',[tmin,tmax])
ez=ezplot('sin(x)/x',[-4*pi,4*pi],figure(1))
title('Plot of sinx/x');
grid on;
ez.Color='r'
ez.Marker='o'
ez.MarkerEdgeColor='b'
figure(2)
fp=fplot(@(x)sin(x),[-4*pi,4*pi],'b','LineWidth',3)
title('Plot of sinx');
grid on;
xlabel('x lable')
ylabel('y_lable')
fp.LineStyle='-.'
fp.Color='r'
fp.Marker='x'
fp.MarkerEdgeColor='b'
2 柱状图hist
柱状图:显示一系列数据数值的分布
hist (y) --创建并画出一个 10 等分的柱状图
hist(y, nbins) --创建的是以 nbins 为宽度的柱状图
his(y, x); --允许用户用数组 x 指定柱状图中长条的中心
[n, xout] =hist(y, ...)
figure(3)
y = randn(10000, 1);
hist(y, 15); %画出一个 15 等分的柱状图
title('randn数据数值的分布')
xlabel('等份')
ylabel('分布')
3 三维作图
函数:plot3(x, y, z);
%数据准备
t = 0:0.1:10;
x = exp(-0.2*t) .* cos(2*t);
y = exp(-0.2*t) .* sin(2*t);
%二维
figure(4)
plot(x,y)
title('\bfTwo-Dimensional Line Plot');
xlabel('\bfx');
ylabel('\bfy');
grid on;
%三维
figure(5)
plot3(x,y,t);
title('\bfThree-Dimensional Line Plot');
xlabel('\bfx');
ylabel('\bfy');
zlabel('\bfTime');
axis square;
grid on;
4 三维表面和登高线
(1) surf(x, y, z) 这个函数创建一个三维表面图象。
(2)contour(x, y, z) 这个函数创建一个三维等高线图象。
其中:数组 x 包括要画得每一点的 x 值,数组y 包括要画得每一点的 y 值,数组 z 包括要画得每一点的 z 值
[x,y]=meshgrid(-4:0.2:4,-4:0.2:4);
z = exp(-0.5*(x.^2+y.^2));
figure(7)
%三维表面图象
surf(x,y,z);
%三维等高线图象
subplot(1,2,1)
contour(x,y,z,'LineStyle','-','ShowText','on');
subplot(1,2,2)
contourf(x,y,z,5,'LineStyle','--','ShowText','on','linewidth',2);
5 绘制网络图
(1)点阵图,plot指令
a=-0.98;b=0.98;c=-2;d=2;n=10;%自变量赋值
x=linspace(a,b,n);%生成n个等间距向量x
y=linspace(c,d,n);%生成n个等间距向量y
[X,Y]=meshgrid(x,y);%利用meshgrid指令生成格点矩阵
plot(X,Y,'+')%画图
xlabel('X-linspace')
ylabel('Y-linspace')
(2)网络图,mesh指令
命令:
[x y] = meshgrid(xstart:xinc:xend, ystart:yinc:yend);
xstart:xinc:xend 指定 x 值,ystart:yinc:yend 指定 y 值
绘制:
a=-1;b=1;c=-15;d=15;n=20;eps1=0.01;
x=linspace(a,b,n);y=linspace(c,d,n);%生成n个等间距向量
[X,Y]=meshgrid(x,y);%利用meshgrid指令生成格点矩阵
for i=1:n %计算函数值z,并做定义域裁剪
for j=1:n
if ((1-X(i,j))<eps1) | (X(i,j)-Y(i,j)<eps1)
z(i,j)=NaN;%做定义域裁剪,定义域以外的函数值为NaN
else
z(i,j)=1000*square(1-X(i,j))^-1.*log(X(i,j)-Y(i,j));
end
end
end
zz=-20*ones(1,n);
plot3(x,y,zz),grid off,hold on %画定义域的边界线
mesh(X,Y,z)%绘图,可用meshz,surf或meshc替换
view([-56.5,38]);%指定视点
xlabel('x'),ylabel('y'),zlabel('z'), box on%把三维图形封闭在箱体里
绘制:
figure(6)
[x,y]=meshgrid(-4:0.2:4,-4:0.2:4);
z = exp(-0.5*(x.^2+y.^2));
mesh(x,y,z);
xlabel('\bfx');
ylabel('\bfy');
zlabel('\bfz');
(3) 曲面图,surf指令
X=-10:1:10;
Y=-10:1:10;
[X,Y]=meshgrid(X,Y);
Z=-X.^2-Y.^2+10
surf(X,Y,Z)
xlabel('x')
ylabel('y')
zlabel('z')
axis tight %使得图形框图靠近数据
colormap(jet)%彩色映射矩阵map
shading interp%通过在每个线条或面中对颜色图索引或真彩色值进行插值来改变该线条或面中的颜色
set(gca,'Ydir','reverse')%设置图形对象属性,坐标轴刻度翻转
set(gca,'xgrid','on') %X轴的grid开启
set(gca,'ygrid','on') %y轴的grid开启
set(gca, 'fontsize',10) % 坐标轴标注文字大小
set(gcf,'color','w')%图的背景设为白色
6 特殊图形绘制
quiver3,三维箭头标记函数
slice,切片函数
%定义自变量范围
t=-0:0.1:1.5;
%距离函数
x=t.^2;
y=(2/3)*t.^3;
z=(6/4)*t.^4-(1/3)*t.^3;%由速度得到曲线
%计算数值梯度,速度
Vdx=gradient(x);
Vdy=gradient(y);
Vdz=gradient(z);
figure
plot(t,x),hold on;
plot(t,Vdx,'r--o'),grid on;
xlabel('t');
ylabel('Vx, Vdx(红色虚线)')
axis tight
figure
plot(t,y),hold on;
plot(t,Vdy,'r--o');
xlabel('t');
ylabel('Vy, Vdy(红色虚线)')
axis tight
figure
plot(t,z),hold on;
plot(t,Vdz,'r--o');
xlabel('t');
ylabel('Vz, Vdz(红色虚线)')
axis tight
figure
plot3(x,y,z,'r.-'),hold on%画飞行轨迹
quiver3(x,y,z,Vdx,Vdy,Vdz),grid on%画速度矢量图, 三维箭头图显示x,y,z处的向量
grid on %栅格化
xlabel('x')
ylabel('y')
zlabel('z')
axis tight
附1 图像的颜色,标记类型,线型
线型 | 颜色 | 符号 | 符号 |
---|---|---|---|
- 实线 | b 蓝色 | . 点 | ^ 上三角 |
: 虚线, | g 绿色 | o 圆圈 | < 左三角 |
-. 点划线 | r 红色 | × 叉号 | > 右三角 |
-- 虚线 | c 青色 | + 加号 | v 下三角 |
m 品红 | * 星号 | h 六角星 | |
y 黄色 | s 方块 | ||
k 黑色 | d 菱形 | ||
w 白色 | p 五角星 |
附2 表面,网格,等高线图象函数
参考资料《MATLAB/Simulink系统仿真》