MATLAB學習——Matlab繪圖系列之基本繪圖

2021-01-14 君泉計量


現場課程:

連享會-空間計量專題研討班


前言

說是前言,其實就是和大家簡單嘮嘮。我也是學MATLAB踩過不少的坑,所以一路走來感觸很深,至今我還記得我大學的老師說過的一句話:一切以你親自操作的為準。其實,我的體會就是多用、多練,熟能生巧來形容再合適不過了,也祝對MATLAB感興趣的朋友們,可以在操作MATLAB的過程中有更大的收穫和進步!

一、目錄

1.區域圖

2.填充圖

3.條形圖

4.直方圖

5.圓體圖

6.餅圖

7.排列圖

8.離散圖形

9.散點圖

10.輪廓圖

11.向量圖

12.多邊形面積圖

二、圖形示例

1.區域圖

MATLAB程序如下:


Y=[1,5,3;

3,2,7;

1,5,3;

2,6,1];

area(Y)

grid on

set(gca,'Layer','top')

title('Stacked Area Plot')


pic 1


2.填充圖

二維填充圖

MATLAB程序如下:


t=(1/16:1/8:1)'*2*pi;%八邊形頂點

x1=sin(t);

y1=cos(t);

t=(0:1/10:1)'*2*pi;%十邊形頂點

x2=2+sin(t);

y2=cos(t);

fill(x1,y1,'y',x2,y2,'w')

title('二維填充圖示例')

axis equal

axis off

text(-0.75,0,'\fontname{隸書}\fontsize{32}八邊形')

text(1.25,0,'\fontname{隸書}\fontsize{32}十邊形')


pic 2


三維填充圖

MATLAB程序如下:


X=[0 1 1 2;1 1 2 2;0 0 1 1];%創建四個三角形

Y=[1 1 1 1;1 0 1 0;0 0 0 0];

Z=[1 1 1 1;1 0 1 0;0 0 0 0];

C=[0.5 1 1 0.5;

1 0.5 0.5 0.1667;

0.333 0.333 0.5 0.5];%色彩著色

fill3(X,Y,Z,C)

title('三維填充圖')


pic 3


3.條形圖

二維條形圖

MATLAB程序如下:


Y=round(rand(5,3)*10);%隨機函數產生5×3的數組,對產生的數據取整

subplot(2,2,1)

bar(Y,'group')

title('Group')

subplot(2,2,2)

bar(Y,'stack')%堆型二維垂直條形圖

title('Stack')

subplot(2,2,3)

barh(Y,'stack')%堆型二維水平條形圖

title('Stack')

subplot(2,2,4)

bar(Y,1.5)%設定條形的寬度為1.5

title('Width=1.5')


pic 4

三維條形圖

MATLAB程序如下:


Y=[1 2 3 4 5 6 7;

1 2 3 4 3 2 1;

7 6 5 4 3 2 1];

subplot(2,3,1)

bar3(Y,'detached')

title('Detached')

subplot(2,3,4)

bar3(Y,0.25,'detached')

title('Width=0.25')

subplot(2,3,2)

bar3(Y,'grouped')

title('Grouped')

subplot(2,3,5)

bar3(Y,0.5,'grouped')

title('Width=0.5')

subplot(2,3,3)

bar3(Y,'stacked')

title('Stacked')

subplot(2,3,6)

bar3h(Y,0.3,'stacked')

title('Width=0.3')


pic 5


4.直方圖

笛卡兒坐標系下的直方圖

MATLAB程序如下:


x=-2.9:0.1:2.9;

y=randn(1000,1)

hist(y,x)

title('笛卡兒坐標系下的直方圖')


pic 6

極坐標系下的直方圖

MATLAB程序如下:


theta = 2*pi*rand(1,100);

rose(theta)

title('極坐標系下的直方圖')


pic 7


5.圓體圖

圓柱體

MATLAB程序如下:


t=0:pi/10:2*pi;

[x,y,z]=cylinder(2+cos(t),100);

surf(x,y,z)

axis square

title('圓柱形圖示例')


pic 8

球體

MATLAB程序如下:


sphere

axis equal


pic 9

橢圓體

MATLAB程序如下:


[x y z]=ellipsoid(1,2,3,5,1,10);

view(3)

surface(x,y,z)

title('橢圓體:中心點(1,2,3),半徑(5,1,10)')


pic 10

6.餅圖

二維餅圖

MATLAB程序如下:


x=[1 3 0.5 2.5 2];

subplot(221);

pie(x)%繪製餅圖

subplot(222)

explode=[0 1 0 0 0];

pie(x,explode)%加上分離的切片

subplot(223)

label={'一班' '二班' '三班' '四班' '五班'};

pie(x,label);%給每個切片加上標註

subplot(224);

pie(x,explode,label);%具有分離和自定義標註的功能


pic 11

三維餅圖

x=[5 10 7 8 1.3];

explode=[0 1 0 0 0];

pie3(x,explode)

title('三維餅圖')


pic 12


7.排列圖

MATLAB程序如下:


Y=[1 2 5 3.3 0.9 5.2];

names={'一隊' '二隊' '三隊' '四隊' '五隊' '六隊'};

X=[1 2 3 4 5 6];

subplot(211)

pareto(Y,names)%x軸的下標標識為names

title('排列圖示例一')

subplot(212)

pareto(Y,X)

title('排列圖示例二')%x軸下標有x指定


pic 13


8.離散圖形

二維柄狀圖

MATLAB程序如下:


y=linspace(0,2*pi,10)

stem(cos(y),'fill','-.')%對離散圖的末端進行了填充

title('二維柄狀圖示例');


pic 14


三維柄狀圖

MATLAB程序如下:


X=linspace(0,2*pi,50);

Y=X./2;

Z=sin(X)+cos(Y);

stem3(sin(X),cos(Y),Z,'fill')

xlabel('sin(X)');

ylabel('cos(Y)');

zlabel('sin(X)+cos(Y)');

title('三維柄狀圖示例');


pic 15

階梯圖

MATLAB程序如下:


x=0:.25:10;

subplot(211)

stairs(x,sin(x))

title('stairs函數應用示例')

subplot(212)

[xb,yb]=stairs(x,sin(x));%返回plot函數的兩個參數

plot(xb,yb)

title('plot函數實現stairs函數應用示例')


pic 16

9.散點圖

二維散點圖


MATLAB程序如下:


x=rand(1,100)*100;%繪製圖標的x,y軸的坐標

y=rand(1,100)*100;

s=rand(1,100)*100;%繪製圖標的大小

c=rand(1,100)*255;%繪製圖標的顏色

subplot(2,1,1)

scatter(x,y);%繪製具有默認大小與顏色的二維散點圖

title('二維散點圖指令scatter(x,y)');

subplot(2,1,2)

scatter(x,y,s,c);%繪製由參數s、c定義的二維散點圖

title('二維散點圖指令scatter(x,y,s,c)');


pic 17

多邊形區域內的散點

L=linspace(0,2.*pi,6);

xv=cos(L)';

yv=sin(L)';

xv=[xv;xv(1)];

yv=[yv;yv(1)];%設定多邊形

x=randn(250,1);

y=randn(250,1);%設定散點

in=inpolygon(x,y,xv,yv);%判斷散點與多邊形關係值

plot(xv,yv,x(in),y(in),'r+',x(~in),y(~in),'bo')

axis equal


pic 18


三維散點圖

MATLAB程序如下:


[x,y,z]=sphere(16);%獲取球體的坐標

X=x(:);

Y=y(:);

Z=z(:);%矩陣的轉換

S=floor((abs(Z)+1)*50);

C=floor(abs(Z)*255);%定義圖標大小和顏色與球體的緯度有關

scatter3(X,Y,Z,S,C,'filled')%繪製三維散點圖,填充圖標

title('三維散點圖:球體示例')


pic 19

散點圖矩陣

MATLAB程序如下:


x=randn(50,3);

y=x*[-1 2 1;2 0 1;1 -2 3];%定義繪製矩陣值

plotmatrix(y,'*b')

title('繪製3×3散點圖矩陣')


pic 20

10.輪廓圖

二維輪廓圖

MATLAB程序如下:


[X,Y]=meshgrid(-2:.2:2,-2:.2:3);%表面網格函數

Z=X.*exp(-X.^2-Y.^2);

[C,h]=contour(X,Y,Z,10);%繪製輪廓線

clabel(C,h)%對輪廓線進行標註

title('二維輪廓圖示例')


pic 21

填充輪廓線

MATLAB程序如下:


Z=peaks;

[C,h]=contourf(Z,10);%繪製二維輪廓線,並且填充

caxis([-20 20])%偽色彩,設置軸參數CLim和CLimMode

clabel(C,h)%標註輪廓線

title('Filled Contour Plot Using')


pic 22

三維輪廓圖


MATLAB程序如下:


[X,Y]=meshgrid([-2:.25:2]);

Z=X.*exp(-X.^2-Y.^2);

[C,h]=contour3(X,Y,Z,30);%繪製三維輪廓圖

grid off

%clabel(C,h)

title('三維輪廓圖示例')


pic 23

11.向量圖

羅盤圖

MATLAB程序如下:


X=[0 30 90 45 145 270 330 225 150];

Y=[5 9 3 10 6 3 2.6 8 7.4];

X=X*pi/180;

[X,Y]=pol2cart(X,Y);%極坐標轉化為直角坐標

compass(X,Y);

title('羅盤圖示例')


pic 24


羽狀圖

theta=(-90:10:90)*pi/180;

r=2*ones(size(theta));

[u,v]=pol2cart(theta,r);

feather(u,v);

title('羽狀圖示例')


pic 25


箭頭圖

二維箭頭圖

MATLAB程序如下:


[X,Y]=meshgrid(-2:.2:2);

Z=X.*exp(-X.^2-Y.^2);

[DX,DY]=gradient(Z,.2,.2);%計算梯度,.2是DX方向距離

contour(X,Y,Z)

hold on

quiver(X,Y,DX,DY)

grid off

hold off

title('二維箭頭圖示例')


pic 26


三維箭頭圖

MATLAB程序如下:


[X,Y]=meshgrid(-2:0.25:2,-1:0.2:1);

Z=X.*exp(-X.^2-Y.^2);

[U,V,W]=surfnorm(X,Y,Z);%返回三維表面圖的法線

quiver3(X,Y,Z,U,V,W,0.5);

hold on

surf(X,Y,Z);

axis([-2 2 -1 1 -.6 .6])

hold off

title('三維箭頭圖示例')


pic 27


法線圖

MATLAB程序如下:


[x y z]=peaks(20);

surfnorm(x,y,z);


pic 28

12.多邊形面積圖

MATLAB程序如下:


L=Linspace(0,2.*pi,6);

xv=cos(L)';

yv=sin(L)';

xv=[xv;xv(1)];

yv=[yv;yv(1)];

A=polyarea(xv,yv);

plot(xv,yv);

title(['Area=' num2str(A)]);

axis image


pic 29


特別說明:本文轉載自知乎,點擊閱讀原文查看知乎文章。



連享會-空間計量專題研討班

相關焦點

  • 算法工匠MATLAB專訓營:Matlab繪圖,小試牛刀
    下面我們一起來學習Matlab繪圖的基本知識和相關命令。這麼多用處,大家一定要學好哦!MATLAB擁有強大的繪圖功能,軟體提供了一系列的繪圖函數,用戶不需要過多的考慮繪圖的細節,只需要給出一些基本參數就能畫出所需圖形。這類畫圖函數稱為高層繪圖函數。
  • MATLAB基礎教程-臺大郭彥甫-學習筆記6
    matlab會 refresh ,把之前的圖給清掉,如果 想保留,用 指令 hold on[總結】以上記錄了基本的繪圖知識。主要是text()函數顯示積分,還有一些畫線的style風格。figure adjustment圖形調整
  • 應用matlab進行多項式擬合
    採用matlab軟體中的polyfit()函數進行多項式擬合,分別採用5階多項式和9階多項式進行擬合,並對擬合結果進行繪圖對比。
  • 使用 matlab 進行傅立葉分析和濾波
    .^2);end%傅立葉逆變換if(mod(N,2) ~=1) a(m)=a(m)/2;endfor ii=0:N-1 xx(ii+1)=a(1)/2; for k=1:m-1 xx(ii+1)=xx(ii+1)+a(k+1)*cos(2*pi*k*ii/N)+b(k+1)*sin(2*pi*k*ii/N); endend%繪圖subplot(3,1,1
  • matlab符號微積分及應用舉例
    https://blog.csdn.net/guyuealian/article/details/53997490符號函數的積分函數積分主要分為定積分和不定積分兩類,matlab 本節講述的三個函數用法都比較簡單,但涉及到實際問題時,可能需要從多方面思考,下面的例子是一個比較綜合的例子(涉及到曲線擬合、繪圖、函數微分的知識),希望對讀者有所幫助。 例、根據實際測量,得到河流某處寬 600m ,其橫截面不同位置某一時刻的水深如下表所示。
  • matlab矩陣及其運算(三)
    大家好,感謝大家對matlab愛好者公眾號的厚愛!
  • 科研作圖之光譜圖繪製(matlab版)
    感謝關注matlab愛好者公眾號!如果公眾號文章對您有幫助,別忘了點擊分享和「在看」哦!
  • 怎樣把Materials studio能帶圖做得漂亮,用Matlab繪製呀!
    matlab強大的畫圖功能不會讓你失望的,大家的感興趣可以嘗試一下Materials Studio提供的能帶圖既呆板又難看,能不能把能帶圖畫漂亮點呢?答案當然是肯定的。MS提供了將能帶圖(實際上是所有chart圖形)導出為csv文件的功能。
  • Matlab:不定積分和定積分
    matlab中使用int()來計算一個積分。不定積分首先,通過符號變量創建一個符號函數,然後調用積分命令來計算函數的積分,示例如下:注意:matlab中計算的不定積分結果中沒有寫上常數C,讀者需要自己在使用的時候記得加上常數部分。
  • 科研作圖之光譜圖繪製
    感謝大家關注matlab愛好者微信公眾號,今天給大家介紹如何繪製帶可見光光譜背景的光譜圖!!!
  • MATLAB基本語法和基本操作
    戳上方藍字關注我們吧MATLAB基本語法和基本操作1.2.1 變量賦值:一般形式: 變量 = 表達式(數)a = [1 2 3 ; 4 5 6 ; 7 8 9 ] %矩陣形式賦值.a = 1:2:10 %固定步長的矩陣.zeros
  • 業界| 四大機器學習程式語言對比:R、Python、MATLAB、Octave
    作者列出了這些語言(工具)的優缺點,希望對想開始學習它們的人有用。Octave 由工程師設計,因此預裝了工程師常用的程序,其中很多時間序列分析程序、統計程序、文件命令和繪圖命令與 MATLAB 語言相同。 優點: 首先,目前沒有可用的魯棒性 Octave 編譯器,且沒有必要有,因為該軟體可以免費安裝。
  • matlab中的成型濾波器設計
    matlab 中成型濾波器設計有好幾個函數:rcosineFd=9600;Fs=38.4e3;[num,den] = rcosine(Fd,Fs,'sqrt',0.25);freqz(num);其中的Fd表示輸入數據的採樣率
  • matlab矩陣及其運算(五)
    感謝大家對matlab愛好者公眾號的關注!如果公眾號文章對您有幫助,別忘了點擊分享和「在看」哦!
  • python的繪圖利器--海龜繪圖turtle
    作為你學習python的第一個程序,樹哥決定直接來一個實戰乾貨程序:利用海龜turtle來畫一個奧運五環。這樣就既可以理解庫的概念和使用,又可以理解程序的基本概念。這個語句是個固定格式,有這句話畫完圖,繪圖窗口還保留,如果沒有這句話,繪圖窗口就直接關閉了,所以初期都加上就好了。下面,我們就進入正題:公共設置公共設置的第一條import turtleimport是導入,turtle是海龜繪圖庫,所以這句話就是導入海龜會圖庫的意思,記住就可以了。
  • 三門問題及matlab仿真驗證
    今天看到一個問題——三門問題,感覺挺有趣的,自己也親自上手利用matlab仿真模擬了一下,分享給大家。【三門問題】三門問題出自美國的電視遊戲節目Let's Make a Deal,因為是由一個叫蒙提霍爾的人提出的,所以也叫蒙提霍爾問題。
  • 誤差分析指標計算之matlab實現
    感謝關注matlab愛好者公眾號!如果公眾號文章對您有幫助,別忘了點擊分享和「在看」哦!
  • 如何用Matlab/Python/Stata做簡單回歸分析
    %adjusted R-squared: Ra=1-((1/(N-k))*(e'*e))/((1/(N-1))*(Y-mean(Y))'*(Y-mean(Y))) Matlab導入文件的格式是*.dat文件,而實現回歸的過程其實是基於矩陣的計算:第一段使用的median/mean/corrcoef都是matlab
  • 有關matlab三角函數角度與弧度計算的小竅門
    不知你有沒有注意到,當在matlab計算sin(30),cos(60)時候出來的並不是你想要的0.5,這到底是為啥呢,原來matlab這種形如「sin, cos, tan」等函數計算的時候採用的是弧度制而不是我們平常所理解的角度制。那麼問題來了,該如何解決這個問題呢?
  • 原創案例:Matlab多元線性回歸分析-逐步回歸
    逐步回歸的基本思想是逐個引入自變量,保留影響顯著的變量,剔除影響不顯著的變量,最終使得回歸方程擬合度趨於完美。在Matlab中,函數stepwise的功能就是對需要分析的變量進行逐步回歸,最後得出回歸方程各個擬合信息。Stepwise的簡單用法是stepwize(X,Y),X是由若干個自變量列向量組成的矩陣,Y是由因變量構成的列向量。