大家好!我是Henry!
上一期的Python爬蟲實踐中,Henry導入了Matplotlib庫進行了新冠疫情的每日新增的繪圖。其實Matplotlib的原型是另一門應用非常廣泛的語言——Matlab。最近Henry也學習了一些Matlab的繪圖技巧,分享給大家~
我們先放幾張效果圖~
看到這裡,是不是覺得很酷炫呢!那跟著我一起來學習吧!
一、MATLAB初印象
1.什麼是MATLAB?
MATLAB的實際含義是Matrix Laboratory,從名字我們知道,最初設計出來為了更好的理解線性代數(Linear algebra),後來逐步演化為現在的功能及其強大的MATLAB。
2.如何下載MATLAB?
3.MATLAB界面熟悉
二、開始繪圖1.簡單平面函數圖像
x=0:0.5:4; % 這裡表示,x變量為[0,4],中間每隔0.5寫一個坐標值,作為橫軸。y=2*x+1; % 變量y=2x+1,作為縱軸。plot(x,y) % 調用plot函數,橫縱軸變量作為參數,進行繪圖。點擊運行(Run),得到圖像。
y=2x+1我們再嘗試一個複雜的平面圖像 ,輸入如下代碼
x=0:pi/100:2*pi; %定義變量x為[0,2pi],每隔pi/100標註一個坐標值,作為橫軸y=2*exp(-0.5*x).*cos(4*pi*x); %定義變量y,exp(x)表示自然底數的指數函數e的x次方,.*表示點乘plot(x,y) %調用plot函數,進行繪圖運行結果為
我們再嘗試一個極坐標函數圖像 ,輸入如下代碼
t=0:pi/50:2*pi; %定義變量t[0,2pi],每隔pi/50標註一個坐標值,作為橫軸r=sin(t).*cos(t); %定義變量r=sint·cost, .*表示點乘(內積)polarplot(t,r); %這裡不能直接調用plot函數,而是專門繪製極坐標圖的polarplot函數。運行結果為
2.繪製子圖。
有時候,我們需要在一張紙上,繪製多個圖,就需要用到subplot函數,創建多個圖像。具體用法為:
subplot(m,n,i)% 這條語句表示,創建一個m行n列的畫布(即可以畫m*n個圖像),現在進行第i個圖像的繪製在這裡補充幾個圖的類型:條形圖(bar),階梯圖(stairs),杆圖(stem),填充圖(fill),我們通過實際的例子來學習,順便用一下剛學的子圖,將這幾個圖畫在同一張畫布上。
我們選取的例子為簡單的平面函數:x=0:pi/10:2*pi; %定義x變量為[0,2pi],每隔0.1pi標記一個點,作為橫軸y=2*sin(x); %定義變量y=2*sinxsubplot(2,2,1); %創建一個2行2列的畫布,現在進行第一張圖的繪製bar(x,y,'g'); %繪製一張以x,y為橫縱坐標的條形圖,顏色用綠色(green)title('bar(x,y,''g'')'); %創建第一張圖的標題為「bar(x,y,''g'')」axis([0,7,-2,2]); %控制顯示的坐標軸的長度,x為[0,7],y為[-2,2]subplot(2,2,2); %現在進行第二張圖的繪製stairs(x,y,'b'); %繪製一張以x,y為橫縱坐標的階梯圖,顏色用藍色(blue)title('stairs(x,y,''b'')'); %創建第二張圖的標題為「stairs(x,y,''b'')」axis([0,7,-2,2]); %控制顯示的坐標軸的長度,x為[0,7],y為[-2,2]subplot(2,2,3); %現在進行第三張圖的繪製stem(x,y,'k'); %繪製一張以x,y為橫縱坐標的杆圖,顏色用黑色(black)title('stem(x,y,''k'')'); %創建第三張圖的標題為「stem(x,y,''b'')」axis([0,7,-2,2]); %控制顯示的坐標軸的長度,x為[0,7],y為[-2,2]subplot(2,2,4); %現在進行第四張圖的繪製fill(x,y,'y'); %繪製一張以x,y為橫縱坐標的填充圖,顏色用黃色(yellow)title('fill(x,y,''y'')'); %創建第四張圖的標題為「fill(x,y,''y'')」axis([0,7,-2,2]); %控制顯示的坐標軸的長度,x為[0,7],y為[-2,2]運行結果如下:
3.繪製三維圖像
往往,我們還需要繪製三維函數圖像,我們還是從例子中學習。
先舉一個大家熟悉的例子:空間螺線( )
t=0:pi/100:20*pi; %定義變量t[0,20pi],每隔pi/100標註一個坐標值x=sin(t); %定義變量x=sinty=cos(t); %定義變量y=costz=t; %定義變量z=tplot3(x,y,z); %調用繪圖函數plot3,表示繪製三維圖像,三個參數分別為x,y,z軸值title('Line in 3-D Space'); %標題為「Line in 3-D Space」xlabel('X');ylabel('Y'); %給x,y,z軸分別加上標籤(label),即命名zlabel('Z');grid on; %grid on 表示打開網格,會出的圖像會出現網格運行結果為:
t=0:pi/20:2*pi; %定義參數t[0,2pi],每隔pi/100標註一個。[x,y,z]= cylinder(2+sin(t),30); %將x,y,z定義為花瓶型並繪圖(cylinder本身為圓柱,這裡將表面調整了)subplot(2,2,1); %創建一個可以畫四個圖的子圖,這裡畫其中第一個mesh(x,y,z); %mesh為繪製網格曲面圖的函數subplot(2,2,2); %畫第二個圖[x,y,z]=sphere; %將x,y,z定義為球形並繪圖mesh(x,y,z);subplot(2,1,2); %畫第三個圖[x,y,z]=peaks(30); %將x,y,z定義為多峰型並繪圖mesh(x,y,z);運行結果如下:
三、總結Markdown語言——數學公式
Python爬蟲實例(一)——爬取某點小說網《慶餘年》
Python爬蟲實例(二)——爬取新冠疫情每日新增人數
寫在最後:
歡迎大家關注我的知乎帳號:HenryLau
歡迎大家關注我的CSDN帳號:HenryLau7