1. 程式人生 > >[數學建模(八)]使用MATLAB繪圖1

[數學建模(八)]使用MATLAB繪圖1

基本 barh 分享 com 自定義 subplot mes 1.2 img

目錄

1..二維圖
1.1 基本畫圖功能
1.2 plot參數說明 :線條類型,點類型,顏色
1.3 坐標軸定標和圖形說明
1.4 子圖 :subplot
1.5 其他類型的二維圖 :極坐標圖,條形圖,餅圖,柱狀圖,雙y軸圖
1.6 函數繪圖 :fplot
2.三維繪圖
2.1 三維線圖 plot3()
2.2 曲面圖 mesh surf
2.3 等高圖 contour()
2.4 偽色圖 pcolor()

1.二維圖

1.1 基本畫圖功能

技術分享

1.2 plot參數說明

技術分享

1.3 坐標軸定標和圖形說明

技術分享

1.4 子圖

subplot(m,n,p) 把圖形窗口分成m行n列,p對應第幾個子圖。

例如subplot(2,2,1)

技術分享

例子:

x=0:pi/20:2*pi;

y1=sin(x);

y2=cos(x);

%第一個圖形窗口

figure(1)

plot(x,y1,:*k,x,y2,--*r);   %參數依次為:線條類型,點類型,顏色

title(正弦與余弦)              %標題

xlabel(x軸)                   %標註x軸

ylabel(y軸)                   %標註y軸

legend(y1=sinx,y2=cosx)     %標註函數線

text(0.7853,0.7071,
交點) %在某個點添加文本框 grid on %添加柵格 %第二個圖形窗口 figure(2) %重新打開一個空白圖形窗口 subplot(2,1,1) axis([0,pi,0,1]) %限制x,y軸的最大最小值,[xmin,xmax,ymin,ymax] plot(x,y1,r,LineWidth,2) %使線條擴大一定倍數 legend(y1=sinx) subplot(2,1,2) %把圖形窗口分成2行1列 axis([0,pi,0,
1]) plot(x,y2,b,LineWidth,2) legend(y1=sinx)

運行結果:

技術分享

技術分享

1.5 其他類型的二維圖

(1)極坐標圖: polar(theta,r)

(2)對數圖

技術分享

(3)條形圖,柱狀圖和餅圖

技術分享

柱狀圖:顯示數據的分布情況。

(4)雙y軸圖:適用於同個x區間,但y值相差較大的情況。

例子:

x=[1:5];

figure(1)

subplot(2,2,1)

bar(x);   %垂直條形圖

subplot(2,2,2)

barh(x);  %水平條形圖

subplot(2,2,3)

bar3(x);  %三維條形圖

subplot(2,2,4)

bar3h(x); %三維水平條形圖

figure(2)

subplot(2,2,1)

pie(x);   %餅圖

subplot(2,2,2)

pie3(x);  %三維餅圖

subplot(2,2,3)

x1=[1 2 4 6 2 2 5 3 4 5 6 2 7 1 2  8 9 2 3 4 6];

hist(x1,10);  %柱狀圖,把數據從最大值到最小值等分成10份

subplot(2,2,4)

x2=0:pi/20:2*pi;

y1=sin(x2);

y2=exp(x2);

plotyy(x2,y1,x2,y2)  %雙y圖

運行結果:

技術分享

技術分享

1.6 函數繪圖:fplot(‘sin(x)‘,[-2*pi,2*pi])

2.三維繪圖

技術分享

2.1 三維線圖

x=linspace(0,10*pi,1000);  %0到10*pi中間插入1000個值

y=cos(x);

z=sin(x);

plot3(x,y,z)

grid

xlabel(angle);

ylabel(cos(x));

zlabel(sin(x));

title(彈簧)

運行結果:

技術分享

2.2 曲面圖

(1)mesh圖 (無顏色):mesh(x,y,z)

(2)surf圖 surf(x,y,z)

渲染顏色:shading interp 去掉顏色:shading flat

用戶自定義顏色:colormap(gray) %輸出灰色

其他顏色:

技術分享

例子:

z=[1:10;2:2:20;3:12];

x=linspace(1,50,10);

y=[500,750,1000];

subplot(2,2,1);

mesh(x,y,z);     %mesh圖

title(mesh圖)

subplot(2,2,2);

surf(x,y,z);     %surf圖

title(surf圖)

subplot(2,2,3);

surf(x,y,z);   

shading interp; %渲染陰影圖

title(渲染陰影圖)

subplot(2,2,4);

surf(x,y,z);

shading flat;   %去掉色圖中的網格

title(去掉色圖中的網格)

運行結果:

技術分享

2.3 等高圖

[x,y,z]=peaks;

subplot(1,2,1);

plot3(x,y,z);

contour(x,y,z)   %繪制三維等高圖

 subplot(1,2,2);

surfc(x,y,z) %同時繪制等高圖和曲面圖

運行結果:

技術分享

2.4 偽色圖

概念:用帶柵格的二維陰影圖代替等高圖中的輪廓線。

[x,y,z]=peaks;

subplot(2,2,1);

pcolor(x,y,z);

title(繪制偽色圖)

 

subplot(2,2,2);

pcolor(x,y,z);

shading interp;

title(去掉了三維圖形的網格)

 

subplot(2,2,3);

pcolor(x,y,z);

shading interp;

hold on;

contour(x,y,z,20,k)

title(在圖形上疊加等高線)

 

subplot(2,2,4);

contour(x,y,z)

title(普通的等高圖)

運行結果:

技術分享

[數學建模(八)]使用MATLAB繪圖1