`
x=logspace(-1,1,100);
y=x.^2;
subplot(2,2,1);
plot(x,y);
title('plot');
grid on;
subplot(2,2,2);
semilogx(x,y);
title('semilogx');
grid on;
subplot(2,2,3);
semilogy(x,y);
title('semilogy');
grid on;
subplot(2,2,4);
loglog(x,y);
title('loglog');
grid on;
x=0:0.01:20;
y1=200*exp(-0.05*x).*sin(x);
y2=0.8*exp(-0.5*x).*sin(10*x);
[AX,H1,H2]=plotyy(x,y1,x,y2);
set(get(AX(1),'Ylabel'),'string','Left Y-axis')
set(get(AX(2),'Ylabel'),'string','Right Y-axis')
title('Labeling plotyy');
set(H1,'LineStyle','--');set(H2,'LineStyle',':');
y=randn(1,1000);
subplot(2,1,1);
hist(y,10);
title('bins=10');
subplot(2,1,2);
hist(y,50);
title('bins=50');
x=[1 2 5 4 8];y=[x;1:5];
subplot(1,3,1);bar(x);title('a bargraph of vector x');
subplot(1,3,2);bar(y);title('a bargraph of vector y');
subplot(1,3,3);bar3(y);title('a 3d bargraph ');
x=[1 2 5 4 8];y=[x;1:5];
subplot(2,1,1);bar(y,'stacked');title('stacked');
subplot(2,1,2);barh(y);title('horizontal');
a=[10,5,20,30];
subplot(2,2,1);pie(a);
subplot(2,2,2);pie(a,[0,0,0,1]);
subplot(2,2,3);pie3(a,[0,0,0,1]);
subplot(2,2,4);pie3(a,[1,1,1,1]);
x=linspace(0,4*pi,40);y=sin(x);
subplot(1,2,1);stairs(y);
subplot(1,2,2);stem(y);
clear
t=linspace(0,10,50);%在0和10之间(包括)等距取了50个数
s=linspace(0,10,1000);%1000只是为了图像更平滑而取的
y1=sin(pi*t.^2/4);
y2=sin(pi*s.^2/4);
hold on
plot(s,y2);
stem(t,y1);
hold off
load carsmall
boxplot(MPG, Origin);
x=0:pi/10:pi;y=sin(x);
e=std(y)*ones(size(x));
errorbar(x,y,e);
t=(1:2:15)'*pi/8;%将【1,3,5……】转置成列向量(这样计算更快),然后×8派
x=sin(t);y=cos(t);
fill(x,y,'r');
axis square off;
text(0,0,'stop','Color','w','FontSize',80,'FontWeight','bold','HorizontalAlignment','center');
在MATLAB中,所有的图都是三维图,二维图只不过是三维图的一个投影.点击图形窗口的**Rotate 3D(三维旋转)**按钮,即可通过鼠标拖拽查看该图形的三维视图.
imagesc():将三维图转换为二维俯视图,通过点的颜色指示高度.
surf():绘制曲面图
surf(X,Y,Z) 创建一个三维曲面图。该函数将矩阵 Z 中的值绘制为由 X 和 Y 定义的 x-y 平面中的网格上方的高度。函数还对颜色数据使用 Z,因此颜色与高度成比例。
此外,surf(X,Y,Z,C) 还指定曲面的颜色。
**meshgrid()**二维和三维网络
[X,Y] = meshgrid(x,y) 基于向量 x 和 y 中包含的坐标返回二维网格坐标。X 是一个矩阵,每一行是 x 的一个副本;Y 也是一个矩阵,每一列是 y 的一个副本。坐标 X 和 Y 表示的网格有 length(y) 个行和 length(x) 个列。
[X,Y] = meshgrid(x) 与 [X,Y] = meshgrid(x,x) 相同,并返回网格大小为 length(x)×length(x) 的方形网格坐标。
[X,Y,Z] = meshgrid(x,y,z) 返回由向量 x、y 和 z 定义的三维网格坐标。X、Y 和 Z 表示的网格的大小为 length(y)×length(x)×length(z)。
[X,Y,Z] = meshgrid(x) 与 [X,Y,Z] = meshgrid(x,x,x) 相同,并返回网格大小为 length(x)×length(x)×length(x) 的三维网格坐标。
[x, y] = meshgrid(-3:.2:3,-3:.2:3); z = x.^2 + x.*y + y.^2;
subplot(1, 2, 1)
surf(x, y, z);
subplot(1, 2, 2)
imagesc(z);
-使用plot3()函数即可绘制三维线,输入应为三个向量.
x=0:0.1:3*pi; z1=sin(x); z2=sin(2.*x); z3=sin(3.*x);
y1=zeros(size(x)); y3=ones(size(x)); y2=y3./2;
plot3(x,y1,z1,'r',x,y2,z2,'b',x,y3,z3,'g'); grid on;
xlabel('x-axis'); ylabel('y-axis'); zlabel('z-axis');
x = -3.5:0.2:3.5; y = -3.5:0.2:3.5;
[X,Y] = meshgrid(x,y);
Z = X.*exp(-X.^2-Y.^2);
subplot(1,2,1); mesh(X,Y,Z);
subplot(1,2,2); surf(X,Y,Z);
x = -3.5:0.2:3.5; y = -3.5:0.2:3.5;
[X,Y] = meshgrid(x,y); Z = X.*exp(-X.^2-Y.^2);
subplot(2,2,1);mesh(X,Y,Z);axis square;
subplot(2,2,2); contour(Z,[-.45:.05:.45]); axis square;
subplot(2,2,3); [C,h] = contour(Z); clabel(C,h); axis square;
subplot(2,2,4); contourf(Z); axis square;
x = -3.5:0.2:3.5; y = -3.5:0.2:3.5;
[X,Y] = meshgrid(x,y); Z = X.*exp(-X.^2-Y.^2);
subplot(1,2,1); meshc(X,Y,Z);
subplot(1,2,2); surfc(X,Y,Z);
v = [0 0 0; 1 0 0 ; 1 1 0; 0 1 0; 0.25 0.25 1; 0.75 0.25 1; 0.75 0.75 1; 0.25 0.75 1];
f = [1 2 3 4; 5 6 7 8; 1 2 6 5; 2 3 7 6; 3 4 8 7; 4 1 5 8];
subplot(1,2,1);
patch('Vertices', v, 'Faces', f, 'FaceVertexCData', hsv(6), 'FaceColor', 'flat');
view(3); axis square tight; grid on;
subplot(1,2,2);
patch('Vertices', v, 'Faces', f, 'FaceVertexCData', hsv(8), 'FaceColor','interp');
view(3); axis square tight; grid on