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])

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、畫出
y1=6(sinx-cosx),y2=x2^x-1的圖形

>> 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)
圖片
 

16、自行確定數據,繪制其柱形圖。

>> x=[-2:0.01:4];

>>y=randn(1131,1);

>>hist(y,x)

圖片


17、繪制y=sinx在[0,2*pi]
上的誤差圖。

>> 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、同一窗口繪制

和在[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);contour(A) %繪制等值線圖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=[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,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<=4,-4<=y<=4區域上繪制z=x^2+y^2的三維網格圖。

>> [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];

>>bar3(z,'detached')

>>title('bar3函數以detached參數繪制A=[1 2 3;4 5 6;7 8 9]的條形圖')

>> bar3(z,'grouped')

>> title('bar3函數以grouped參數繪制A=[1 2 3;4 5 6;7 8 9]的條形圖')

>> bar3(z,'stacked')

>> title('bar3函數以stacked參數繪制A=[1 2 3;4 5 6;7 8 9]的條形圖')

圖片

34、繪制柱形圖。

>> t=[0:pi/50:2*pi];

>> [x,y,z]=cylinder(t.*sin(t));

>> surf(x,y,z)

>> cylinder(t.^2)

>> title('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); 

%建立三角形網格

>> trimesh(tri,x,y,z)

>> 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<=2, -2<=y<=2, -2<=z<=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的動畫。

>> 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)
圖片
 

49、繪圖工具欄介紹。

圖片 圖片


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM