MATLAB常用绘图方法总结

1、三维曲线

>> t=0:pi/50:10*pi;
>> plot3(sin(2*t),cos(2*t),t)
>> axis square
>> grid on

结果如下图所示:
图片
2、一窗口多图形

>> t=-2*pi:0.01:2*pi;
>> subplot(3,2,1)
>> plot(t,sin(t))
>> subplot(3,2,2)
>> plot(t,cos(t))
>> subplot(3,2,3)
>> plot(t,tan(t))
>> axis([-pi pi -100 100])
>> subplot(3,2,4)
>> plot(t,cot(t))
>> axis([-pi pi -100 100])
>> subplot(3,2,5)
>> plot(t,atan(t))
>> subplot(3,2,6)
>> plot(t,acot(t))

结果如下图所示:
图片
3、 图形样式、标注、题字 (也可以利用菜单直接Insert)

>> x=0:pi/20:2*pi;
>> plot(x,sin(x),'b-.')
>> hold on
>> plot(x,cos(x),'r--')
>> hold on
>> plot(x,sin(x)-1,'g:')
>> hold on
>> plot(x,cos(x)-1)
>> xlabel('x');
>> xlabel('x轴');
>> ylabel('y轴');
>> title('图形样式、标注等');
>> text(pi,sin(pi),'x=\pi');
>> legend('sin(x)','cos(x)','sin(x)-1','cos(x)-1');
>> [x1,y1]=ginput(1) %利用鼠标定位查找线上某点的值
x1 =
    2.0893
y1 =
   -0.5000
>> gtext('x=2.5') %鼠标定位放置所需的值在线上

结果如下图所示:
图片

4、绘制函数图像

>> fplot('[sin(x),cos(x),sqrt(x)-1]',[0 2*pi])
>> fplot(@(x)[sin(x),cos(x),sqrt(x)-1],[0 2*pi])  %新版本推荐

M文件:myfun.m

function y=myfun(x)
    y(:,1)=sin(x);
    y(:,2)=cos(x);
    y(:,3)=x^(1/2)-1;

再运行:

>> fplot('myfun',[0 2*pi]) 

同样可以得到下图:
图片
5、带图例图像绘制

>> [x,y]=fplot('sin',[0 2*pi]);
>> [x1,y1]=fplot('cos',[0 2*pi]);
>> plot(x,y,'-r',x1,y1,'-.k')
>> legend('y=sinx','y=cosx')

结果如下图所示:
图片
6、设置线宽

>> x=[-2:0.2:2];
>> y=exp(x)-sin(x);
>> plot(x,y,'-or','linewidth',2)

结果如下图所示:
图片
7、画出 y 1 = 6 ( s i n x − c o s x ) , y 2 = x 2 x − 1 y_1=6(sinx-cosx), y_2=x2^x-1 y1=6(sinxcosx),y2=x2x1 的图形

>> x=[-3:0.1:3];
>> y1=6*(sin(x)-cos(x));
>> y2=x.*2.^x-1;
>> plot(x,y1,'-r',x,y2,'-.k','linewidth',2)

结果如下图所示:
图片
8、绘制心形图r=2(1-cosθ)的极坐标图形

>> theta=[0:0.01:2*pi];
>> polar(theta,2*(1-cos(theta)),'-k')
>> polar(theta,2*(1-cos(theta)),'-or')

结果如下图所示:
图片
9、用双轴对数坐标绘制y=x*3^x-30的图形

>> x=logspace(-3,3);
>> y=x.*3.^x-30;
>> loglog(y,'-or','linewidth',2);
>> grid on

结果如下图所示:
图片
10、绘制数据向量的单轴对数坐标图形

>> x=[1:50];
>> y=[1:50];
>> semilogx(x,y,'-*b')
% 绘制横轴为对数坐标
% 纵轴为线性坐标
>> grid on
>> semilogy(x,y,'-*b')
% 绘制纵轴为对数坐标
% 横轴为线性坐标
>> grid on

结果如下图所示:
图片
11、绘制矩阵的条形图,并求出句柄属性值向量。

>> A=[1 2 3;4 5 6;7 8 9];
>> h=bar(A)
h =
  171.0031  174.0026  176.0026

结果如下图所示:
图片
12、绘制矩阵的水平条形图。

>> y=[3 2 -2 2 1;-1 2 3 7 1;7 2 -3 5 2];
>> x=[1:3];
>> barh(x,y)

结果如下图所示:
图片
13、绘制矩阵的面积图。

>> y=[3 2 -2 2 1;-1 3 3 7 2;-7 5 5 9 3];
>> area(y)

结果如下图所示:
图片
14、绘制矩阵的二维饼图

>> x=[1 2 3;4 5 6;7 8 9];
>> explode=[0 1 0 1 0 1 0 1 0];
>> pie(x,explode)

结果如下图所示:
图片
15、自行确定数据向量,绘制其散点图。

>> x=rand(1,100); y=randn(1,100); scatter(x,y,20); box on

结果如下图所示:
图片
16、自行确定数据,绘制其柱形图。

>> x=[-2:0.01:4];
>> y=randn(1131,1);
>> hist(y,x)

结果如下图所示:
图片
17、绘制 y = s i n x y=sinx y=sinx [ 0 , 2 π ] [0,2\pi] [0,2π]上的误差图。

>> x=[0:pi/20:2*pi];
>> y=sin(x);
>> E=std(y)*ones(size(x));
% 条形控制
>> errorbar(x,y,E)

结果如下图所示:
图片
18、绘制火柴杆图。

>> x=[1 1.5 2;3 3.5 4;5 5.5 6];
>> y=[4 3 2;4 8 9;2 7 3];
>> stem(x,y,'fill')
% fill意思是“实心点”

结果如下图所示:
图片
19、绘制羽列图。

>> U=[-90:5:90]*pi/180;
% 建立等间距数据
>> V=2*ones(size(U));
% 根据U建立数据
>> [U,V]=pol2cart(U,V);
% 转换数据为直角坐标形式
>> feather(U,V)

结果如下图所示:
图片
20、同一窗口绘制 y 1 = 50 e − 0.05 x s i n x y_1=50e^{-0.05x}sinx y1=50e0.05xsinx y 2 = 50 e − 0.05 x c o s x y_2=50e^{-0.05x}cosx y2=50e0.05xcosx 在[0,30]上的图形。

>> x=[0:0.01:30];
>> y1=50*exp(-0.05*x).*sin(x);
>> y2=0.5*exp(-0.5*x).*cos(x);
>> plotyy(x,y1,x,y2,'plot')
% plotyy(x,y1,x,y2,'plot')表示:用左侧y标度绘制(x,y1),用右侧y标度绘制(x,y2)

结果如下图所示:
图片
21、绘制8阶魔方矩阵的等值线图和阶梯图。

>> A=magic(8); subplot(1,2,1); contour(A) %绘制等值线图
>> subplot(1,2,2); stairs(A) % 绘制阶梯图

结果如下图所示:
图片
22、绘制玫瑰花图。

>> theta=rand(1,200)*2*pi;
>> rose(theta,25)

结果如下图所示:
图片
23、绘制罗盘图。

>> x=rand(20,1); y=randn(20,1);
>> compass(x,y)

结果如下图所示:
图片
24、绘制函数的梯度场矢量图。

>> [x,y]=meshgrid([-2:0.1:2]); % 建立栅格点数据向量
>> z=3.*x.*y*exp(-x.^2-y.^2)-1; % 计算函数值向量
>> [u,v]=gradient(z,0.2,0.2); % 计算梯度值向量
>> quiver(x,y,u,v,2) % 绘制梯度场矢量图

结果如下图所示:
图片
25、给定向量 x , y x,y x,y 生成网格矩阵。

>> x=[1 2 3 4];
>> y=[10 11 12 13 14];
>> [U,V]=meshgrid(x,y)
U =
     1     2     3     4
     1     2     3     4
     1     2     3     4
     1     2     3     4
     1     2     3     4
V =
    10    10    10    10
    11    11    11    11
    12    12    12    12
    13    13    13    13
    14    14    14    14

26、生成一个5阶高斯分布矩阵,并给出相应的 x , y x,y x,y 向量矩阵。

>> [X,Y,Z]=peaks(5)
X =
   -3.0000   -1.5000         0    1.5000    3.0000
   -3.0000   -1.5000         0    1.5000    3.0000
   -3.0000   -1.5000         0    1.5000    3.0000
   -3.0000   -1.5000         0    1.5000    3.0000
   -3.0000   -1.5000         0    1.5000    3.0000
Y =
   -3.0000   -3.0000   -3.0000   -3.0000   -3.0000
   -1.5000   -1.5000   -1.5000   -1.5000   -1.5000
         0         0         0         0         0
    1.5000    1.5000    1.5000    1.5000    1.5000
    3.0000    3.0000    3.0000    3.0000    3.0000
Z =
    0.0001    0.0042   -0.2450   -0.0298   -0.0000
   -0.0005    0.3265   -5.6803   -0.4405    0.0036
   -0.0365   -2.7736    0.9810    3.2695    0.0331
   -0.0031    0.4784    7.9966    1.1853    0.0044
    0.0000    0.0312    0.2999    0.0320    0.0000

27、在 − 4 ≤ x &lt; = 4 , − 4 ≤ y &lt; = 4 -4\le x&lt;=4,-4\le y&lt;=4 4x<=4,4y<=4 区域上绘制 z = x 2 + y 2 z=x^2+y^2 z=x2+y2 的三维网格图。

>> [x,y]=meshgrid(-4:0.125:4);
>> z=x.^2+y.^2;
>> meshc(x,y,z) 

结果如下图所示:
图片
28、绘制高斯分布函数的网格图。

>> [x,y]=meshgrid(-3:0.125:3);
>> z=peaks(x,y);
>> meshz(x,y,z)

结果如下图所示:
图片
29、用surf绘制高斯分布函数的曲面图。

>> [x,y]=meshgrid(-3:0.125:3);
>> z=peaks(x,y);
>> surf(x,y,z)

结果如下图所示:
图片
30、绘制曲线图。

>> t=[0:pi/200:10*pi];
>> x=2*cos(t);
>> y=3*sin(t);
>> z=t.^2;
>> plot3(x,y,z)

结果如下图所示:
图片
31、利用peaks函数产生的数据绘制其带形图。

>> [x,y]=meshgrid([-2*pi:pi/5:2*pi],[-2:1/5:2]);
>> z=peaks(x,y);
>> ribbon(y,z)

结果如下图所示:
图片
32、绘制三维饼图。

>> A=[1 2 3;4 5 6;7 8 9];
>> ex=[1 0 0;4 0 0;0 8 0];
>> pie3(A,ex)

结果如下图所示:
图片
33、在各种style参数的条件下绘制矩阵的三维条形图。

>> z=[1 2 3;4 5 6;7 8 9];
>> subplot(1,3,1); bar3(z,'detached')
>> title('detached style')
>> subplot(1,3,2); bar3(z,'grouped')
>> title('grouped style')
>> subplot(1,3,3); bar3(z,'stacked')
>> title('stacked style')

结果如下图所示:
图片
34、绘制柱形图。

>> t=[0:pi/50:2*pi];
>> [x,y,z]=cylinder(t.*sin(t));
>> subplot(1,2,1); surf(x,y,z)
>> subplot(1,2,2); cylinder(t.^2)

结果如下图所示:
图片
35、绘制三维散点图。

>> x=rand(500,1);
>> y=randn(500,1);
>> z=randn(500,1);
>> scatter3(x,y,z,'p','r');

结果如下图所示:
图片
36、绘制三维火柴杆图。

>> x=[1:0.5:20];
>> y=sqrt(x);
>> z=sqrt(x.^2+y.^2);
>> stem3(x,y,z,'filled')

结果如下图所示:
图片
37、绘制高斯分布函数的三维瀑布图。

>> [x,y]=meshgrid(-4:0.05:4);
>> z=peaks(x,y);
>> waterfall(x,y,z);

结果如下图所示:
图片
38、绘制等值线图。

>> [x,y]=meshgrid(-3:0.1:3);
>> z=2-x.^2-y.^2;
>> contour3(z,20)

结果如下图所示:
图片
39、绘制一个球面。

>> [x,y,z]=sphere(40);
>> surf(x,y,z)

结果如下图所示:
图片
40、绘制三角形网格图和三角形表面图。

>> [x,y]=meshgrid(-3:0.5:3);
>> z=x.*exp(-x.^2-y.^2);
>> tri=delaunay(x,y); 
% 建立三角形网格
>> subplot(1,2,1); trimesh(tri,x,y,z)
>> subplot(1,2,2); trisurf(tri,x,y,z)

结果如下图所示:
图片
41、绘制一个三维彗星图。

>> t=[-3*pi:pi/100:3*pi];
>> x=3.*cos(t);
>> y=2.*sin(t);
>> z=t.^2;
>> comet3(x,y,z)

结果如下图所示(实际绘制为动图,但无法保存):
图片
42、绘制曲面z的表面法向量向量图。

>> [x,y]=meshgrid([-3:0.2:3],[-2:0.5:2]);
>> z=x.*exp(-x.^2-y.*2);
>> [u,v,w]=surfnorm(x,y,z); % 计算表面法向向量
>> quiver3(x,y,z,u,v,w,1.2) % 绘制三维向量图
>> hold on
>> surf(x,y,z)
>> hold off

结果如下图所示:
图片
43、绘制空间立体在 − 2 ≤ x &lt; = 2 , − 2 ≤ y &lt; = 2 , − 2 ≤ z &lt; = 2 -2\le x&lt;=2, -2\le y&lt;=2, -2\le z&lt;=2 2x<=2,2y<=2,2z<=2 上的切片图。

>> [x,y,z]=meshgrid(-2:0.2:2);
>> v=x.*exp(-x.^2-y.^2-z.^2);
>> xi=[-1.2 0.8 2];yi=2;zi=[-2 -0.2];
>> slice(x,y,z,v,xi,yi,zi)

结果如下图所示:
图片
44、在 [ − π , π ] [-\pi ,\pi] [π,π] 上制作一个不断绘制正弦曲线的动画。

>> x=[-pi:0.02:pi];
>> y=sin(x);
>> h=plot(x,y,'r-')
h =
  171.0011
>> axis([-4 4 -1 1])
>> axis square
>> grid off
>> set(h,'erasemode','xor','markersize',10)
>> while 1
	drawnow
	x=x+0.01;
	y=sin(x)-0.01;
	set(h,'xdata',x,'ydata',y)
	if(x>pi)|(y<-1)
		x=[-pi:0.02:pi];
		y=sin(x);
	end
end

45、创建一个三维曲面 z = x 2 + y 2 z=x^2+y^2 z=x2+y2 的动画。

>> x=[-2:0.2:2];
>> [x1,y1]=meshgrid(x);
>> z=x1.^2+y1.^2+eps;
>> surf(z);
>> ta=axis;
>> ft=moviein(40);
>> for i=1:40
	surf(sin(2*pi*i/20)*z,z)
	axis(ta)
	ft(:,i)=getframe;
end
>> movie(ft,20)

46、通过调整Z的数值来建立peaks函数的动画。

>> z=peaks;
>> surf(z);
>> axis tight
>>set(gca,'nextplot','replacechildren');
>> for i=1:20
	surf(sin(2*pi*i/20)*z,z)
	f(i)=getframe;
end
>> movie(f,30)

47、cool色图+faceted系统默认颜色阴影和默认色图jet+interp颜色阴影绘制peaks函数图。

>> z=peaks;
>> surf(z)
>> colormap(cool)
>> shading faceted
>> z=peaks;
>> surf(z)
>> colormap(jet)
>> shading interp

结果如下图所示:
图片
48、创建一个三维表面图并设置不同的视点。

>> [x,y]=meshgrid([-3:0.2:3]);
>> z=x.*exp(-x.^2-y.^2);
>> surf(z)
>> [ax,el]=view
ax =
  -37.5000
el =
    30
>> view(30,-30)

结果如下图所示:
图片

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页