MATLAB绘图及例子总结
Posted fangxiaoqi
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MATLAB绘图及例子总结相关的知识,希望对你有一定的参考价值。
MATLAB绘图及例子总结
二维图
例 1
X1=[1,2,4,6,7,8,10,11,12,14,16,17,18,20];
Y1=[1,2,4,6,7,8,10,10,8,7,6,4,2,1];
figure(1)
plot(X1,Y1,'o','MarkerSize',15)
X2=1:20;
Y2=log(X2);
figure(2)
plot(X2,Y2,'o','MarkerSize',15)
结果:
例 2
X1=(0:12)*pi/6;
Y1=cos(3*X1);
X2=(0:360)*pi/180;
Y2=cos(3*X2);
figure(1)
subplot(2,2,1);
plot(X1,Y1,'o','MarkerSize',3); % 设置标准尺寸为3
xlim([0 2*pi]) % 补充知识点xlim
% x轴上下限设定xlim([a,b]);
% y轴上下限设定ylim([a,b])
subplot(2,2,2);
plot(X1,Y1,'LineWidth',2); % 设置线宽度为2
xlim([0 2*pi])
subplot(2,2,3);
plot(X2,Y2,'o','MarkerSize',3);
xlim([0 2*pi])
subplot(2,2,4);
plot(X2,Y2,'LineWidth',2);
xlim([0 2*pi])
结果:
例 3
x=-pi/2:0.01:pi/2;
y=x+sin(x)+exp(x);
plot(x,y,'-ro'); % 颜色红色
grid on % 网格
title('y的函数图像');
xlabel('x');
ylabel('y');
legend('y=x+sinx+e^(x)');
结果:
例 4
A=magic(20);
A(9:20,:)=[];
figure(1);
plot(A);
for i=1:5
for j=1:6
B(i,j)=i+j;
end
end
x=0.2:0.2:1;
figure(2)
subplot(2,2,1);plot(B,x,'LineWidth',1.5);
subplot(2,2,2);plot(x,B,'LineWidth',1.5);
C=reshape(1:30,5,6); % 变换成特定维数5×6的矩阵
subplot(2,2,3);plot(B,C,'LineWidth',1.5);
subplot(2,2,4);plot(C,B,'LineWidth',1.5);
结果:
例 5
x=-pi:pi/10:pi;
y=tan(sin(x))-sin(tan(x));
plot(x,y,'--rs','LineWidth',2,'MarkerEdgeColor','k','MarkerFaceColor','g','MarkerSize',10);
% MarkerFaceColor:点符号填充颜色
% MarkerEdgeColor:点边框颜色
结果:
例 6
clear all
x=-pi:pi/10:pi;
y=[sin(x);sin(x+3);sin(x+5)];
z=[cos(x);cos(x+3);cos(x+5)];
figure;
plot(x,y,'r:*',x,z,'g-.v');
% r是红色,:是点线,*是星号标记
% g是绿色,-.是点画线,v是倒三角形
结果:
例 7
% 绘制双坐标轴
figure
angl=0:0.01*pi:2*pi;
ampl=sin(0:0.01*pi:2*pi);
z=ampl.*(cos(angl)+sqrt(-1)*sin(angl));
[AX,H1,H2]=plotyy(0:200,abs(z),0:200,angle(z)*180/pi);
% angle用来求复数矩阵相位角的弧度值,其取值为-pi到pi,z是一个复数,abs(z)是复数的模
set(get(AX(1),'Ylabel'),'String','amplitude') % amplitude振幅
set(get(AX(2),'Ylabel'),'String','phase') % phase阶段
% get返回某些对象属性的当前值
set(H1,'LineWidth',3);
set(H2,'LineStyle',':','LineWidth',3)
结果:
例 8
% x轴对数坐标
x=10.^(0.1:0.1:4);
y=1./(x+1000);
figure
subplot(1,2,1);
semilogx(x,y,'+','MarkerSize',5,'LineWidth',2);
title('y=(x+1000)^-1')
subplot(1,2,2);
plot(x,y,'+','MarkerSize',5,'LineWidth',2);
title('y=(x+1000)^-1')
% y轴对数坐标同理
结果1:
% x轴和y轴均为对数坐标
a=0.1:0.1:5;
x=log10(a);
y=10.^a;
figure
subplot(1,2,1)
loglog(x,y,'+','MarkerSize',5,'LineWidth',2)
title('lgy=10^x')
subplot(1,2,2)
plot(x,y,'+','MarkerSize',5,'LineWidth',2)
title('lgy=10^x')
结果2:
例 9
y=[75.995,91.972,105.711,123.203,131.669...
150.697,179.323,203.212,226.505,249.633,281.422];
figure;
bar(y);
结果:
例 10
x=-2:2;
Y=[6,8,7,4,5;4,8,1,12,0;4,6,21,1,3];
subplot(1,2,1),bar(x',Y','stacked')
xlabel('x'),ylabel('\\Sigma y'),colormap(cool)
legend('因素 1','因素 2','因素 3')
subplot(1,2,2),barh(x',Y','grouped') % barh创建水平直方图
xlabel('y'),ylabel('x')
结果:
例 11
x=[1,5,0.5,3.5,2];
explode=[0,1,0,0,0];
pie(x,explode) % 饼图
colormap jet
figure
pie3(x,explode)
colormap hsv
结果:
例 12
x=-4:0.1:4;
y=randn(5000,1);
hist(y,x) % 直方图
结果:
例 13
clear
figure;
x=[1,5,6,7,9,5,1,3,12,20];
y=[20,15,6,3,1,5,3,0,1,5];
subplot(121);
scatter(x,y); % 散点图
subplot(122);
scatter(x,y,[],[1,0,0],'fill');
结果:
三维图
例 1
theta=0:0.01*pi:2*pi;
x=sin(theta);
y=cos(theta);
z=cos(4*theta);
figure
plot3(x,y,z,'LineWidth',2);hold on;
theta=0:0.02*pi:2*pi;
x=sin(theta);
y=cos(theta);
z=cos(4*theta);
plot3(x,y,z,'rd','MarkerSize',10,'LineWidth',2)
结果:
例 2
X=-10:0.1:10;
Y=-10:0.1:10;
[X,Y]=meshgrid(X,Y);
Z=-X.^2-Y.^2+200;
mesh(X,Y,Z)
结果:
例 3
figure
surf(X,Y,Z,'FaceColor','red','EdgeColor','none');
camlight left; % 左侧加一个发光物体
lighting phong % 光照模式,使图表面光滑细腻,色彩丰富
view(-15,65) % 视角的角度
结果:
例 4
···
[X,Y,Z]=peaks(30); %peaks函数是一个典型的多元函数,本质上是一个二元高斯分布的概率密度函数
subplot(1,2,1);surfl(X,Y,Z),colormap(copper),title(‘Default Lighting‘),shading interp
subplot(1,2,2);surfl(X,Y,Z,[-90,30],[.55,.6,2,10]),shading interp
···
结果:
例 5
% 等高线图
[X,Y,Z]=peaks(30);
figure
subplot(2,2,1);contour(X,Y,Z);axis square
subplot(2,2,2);contour(X,Y,Z,10);axis square
subplot(2,2,3);contour(X,Y,Z,-10:1:10);axis square
subplot(2,2,4);contour(X,Y,Z,':');axis square
结果:
例 6
[X,Y,Z]=peaks(30);
R=sqrt(X.^2+Y.^2);
subplot(1,2,1);
surf(X,Y,Z,Z);
axis tight
subplot(1,2,2);surf(X,Y,Z,R);
axis tight
结果:
以上是关于MATLAB绘图及例子总结的主要内容,如果未能解决你的问题,请参考以下文章
高级绘图MATLAB应用实战系列(八十)-圣诞前夜,想表白女神?教你如何用MATLAB绘制圣诞树动态图(附MATLAB代码)