目录
数据图形可视化
MATLAB图形窗口
MATLAB中可以使用函数Figure来建立图形窗口,在MATLAB命令框中输入Figure(x),x为正整数,就会得到图形框名称为x的图形,直接输入时默认图形框名称为1。
函数绘制
一元函数绘制
f='x.^3+y.^2-3';
ezplot(f)
%x.^3+y.^2-3=0的曲线
二元函数绘图
(1)函数ezmesh(不推荐)
(2)函数fmsh
(3)函数meshgrid
x=0:0.1:2; % 给出x 数据
y=-2:0.1:2; % 给出y 数据
[X,Y]=meshgrid(x,y); % 形成三维图形的X 和Y 数组
Z=X.^3+Y.^3;
surf(X,Y,Z);xlabel('x'),ylabel('y'),zlabel('z');
title('z=x^3+y^3')
(4)循环语句
clear all
clc
x=0:0.1:2; % 给出x 数据
y=-2:0.1:2; % 给出y 数据
z1=y.^3;
z2=x.^3;
nz1=length(z1);
nz2=length(z2);
Z=zeros(nz1,nz2);
for r=1:nz1
for c=1:nz2
Z(r,c)=z1(r)+z2(c);
end
end
surf(x,y,Z); ;xlabel('x'),ylabel('y'),zlabel('z');
title('z=x^3+y^3')
数据图形绘制简介
离散数据可视化
用图形表示离散函数
clear all
clc
n=0:10; % 产生一组10个自变量函数Xn
y=1./abs(n-6); % 计算相应点的函数值Yn
plot(n,y,'r*','MarkerSize',25)
% 用尺寸15的红星号标出函数点
grid on % 画出坐标方格
连续函数可视化
对于连续函数可以取一组离散值自变量,然后计算函数值。
clear all
clc
t1=(0:12)/12*pi; % 自变量取13个点
y1=sin(t1).*sin(9*t1); % 计算函数值
t2=(0:50)/50*pi; % 自变量取51个点
y2=sin(t2).*sin(9*t2);
subplot(2,2,1); % 在子图1上画图
plot(t1,y1,'r.'); % 用红色的点显示
axis([0,pi,-1,1]); % 定义坐标大小
title('子图1'); % 显示子图标题
% 子图2用红色的点显示
subplot(2,2,2);
plot(t2,y2,'r.');
axis([0,pi,-1,1]);
title('子图2')
% 子图3用直线连接数据点和红色的点显示
subplot(2,2,3);
plot(t1,y1,t1,y1,'r.')
axis([0,pi,-1,1]);
title('子图3')
% 子图4用直线连接数据点
subplot(2,2,4);
plot(t2,y2);
axis([0,pi,-1,1]);
title('子图4')
二维绘图函数
基本绘图
clear all
clc
x = 0 :0.1 : 4*pi;
y = exp ( 2*cos ( x ) );
figure(1)
plot(x,y,'b.')
title('test') % 图名
xlabel('x');
ylabel('y') % 轴名
legend('e2cosx') % 图例
text(2,0.5,'y= e2cosx ') % 文字
axis([0,4*pi,-1,1]) %设置轴的范围
grid on %画坐标分隔线
clear all
clc
t=(0:pi/5:2*pi)'; % 横坐标列向量
k=0.3:0.1:1; %8个幅值
Y=cos(t)*k; % 8条函数值矩阵
plot(t,Y)
clear all
clc
t=(0:pi/100:4*pi)'; % 长度为101的时间采样序列,'表示转置
y1=sin(t)*[1,-1]; % 包络线函数值,101×2矩阵
y2=sin(t).*sin(9*t); % 长度为101的调制波列向量
t3=pi*(0:9)/9;
y3=sin(t3).*sin(9*t3);
plot(t,y1,'r:',t,y2,'b',t3,y3,'b*') % 绘制三组曲线
axis([0,2*pi,-1,1]) % 控制轴的范围
clear all
clc
t=linspace(0,2*pi,100)'; % 产生100个数
X=[cos(t),cos(2*t),cos(3*t)]+i*sin(t)*[1,1,1]; %100x3的复数矩阵
plot(X),axis square; %使坐标轴长度相同
legend('1','2','3')
clear all
clc
th=[0:pi/50:2*pi]';
a =[0.5:.5:4.5];
X =cos(th)*a;
Y =sin(th)*sqrt(25-a.^2);
plot(X,Y)
axis('equal')
xlabel('x')
ylabel('y')
title('A set of Ellipses')
快速方程式画图
特殊二维图形
(1)极坐标
clear all
clc
t=0:0.1:3*pi; %极坐标的角度.
polarplot(t,abs(cos(5*t)));
(2)对数坐标系
clear all
clc
t = 0 : 900;
A = 1000;
a = 0.005;
b = 0.005;
z1 = A * exp ( -a * t ); %对数函数
z2 = sin ( b * t ); %正弦函数
[ haxes, hline1, hline2 ] = plotyy ( t, z1, t, z2, 'semilogy', 'plot' );
axes ( haxes ( 1 ) )
ylabel ( '对数坐标' )
axes ( haxes ( 2 ) )
ylabel ( '直角坐标' )
set (hline2, 'LineStyle', ' -- ' )
(3)柱坐标系:pol2cart
(4)球坐标系:sph2cart
(5)饼图
clear all
clc
x=[13,28,23,43,22];
pie(x)
将某一部分切开:
clear all
clc
x=[13,28,23,43,22];
y=[0 0 0 0 1]
pie(x,y)
三维绘图函数
绘制三维曲面
生成栅格数据
x = 1:3;
y = 1:5;
[X,Y] = meshgrid(x,y)
%结果
X = 5×3
1 2 3
1 2 3
1 2 3
1 2 3
1 2 3
Y = 5×3
1 1 1
2 2 2
3 3 3
4 4 4
5 5 5
网格曲线绘制
clear all
clc
x=-8:0.5:8;
y=x;
[X,Y]=meshgrid(x,y);
% R=sqrt(X.^2+Y.^2)+eps;
R=sqrt(X.^2+Y.^2)
Z=sin(R)./R;
mesh(X,Y,Z)
grid on
隐藏线的显示和关闭
close all
clear
x=-8:0.5:8;
y=x;
[X,Y]=meshgrid(x,y);
R=sqrt(X.^2+Y.^2)+eps;
Z=sin(R)./R;
subplot(1,2,1)
mesh(X,Y,Z)
hidden on
grid on
title('hidden on')
axis([-10 10 -10 10 -1 1])
subplot(1,2,2)
mesh(X,Y,Z)
hidden off
grid on
title('hidden off')
axis([-10 10 -10 10 -1 1])