賽前必看,這些必備的Matlab繪圖函數你會了嗎?

2022-01-13 校苑數模

眾所周知,matlab不僅擅長處理與矩陣相關的數值運算,在科學可視化方面,它同樣有著很深的積澱。它提供的眾多功能豐富的函數,可以很好地滿足我們需要用到圖形來展示數值信息的各種各樣的需求。 

MATLAB具有二維、三維乃至四維的圖形表現能力。它可以從線型、邊界色、色彩、渲染、光線、視角等方面把數據的特徵表現出來。

MATLAB的圖視化功能是建立在一組圖形對象的基礎之上。圖形對象的核心是圖形的句柄(Granhics Handle)操作。

1、底層(Low-level)繪圖指令:直接對句柄進行操作。底層繪圖指令控制和表現數據圖形的能力比高層繪圖指令強。但是靈活多變,較難掌握。2、高層(High-level)繪圖指令:建立在底層指令之上。

常用的一些底層指令如下所示:

gcf:返回當前窗口對象的句柄(Get CurrentFigure)

gca:返回當前軸對象的句柄(Get Current Axes)

gco:返回當前圖形對象的句柄(Get CurrentObject)

get:獲得句柄圖形對象的屬性和返回某些對象的句柄值

set:改變圖形對象的屬性

本文主要介紹一些高層繪圖指令的相關函數:


x=0:0.01:2*pi;

y=cos(x);

plot(x,y);

xlabel('x軸'); % x軸註解

ylabel('y軸'); % y軸註解

title('餘弦函數'); % 圖形標題

legend('y = cos(x)'); % 圖形註解

gtext('y = cos(x)'); % 圖形註解 ,用滑鼠定位註解位置

grid on; % 顯示格線

在同一個畫面上建立幾個坐標系, 用subplot(m,n,p)命令;

把一個畫面分成m×n個圖形區域, p代表當前的區域號,在每個區域中分別畫一個圖。

x=linspace(0,2*pi,30);y=sin(x); z=cos(x);

u=2*sin(x).*cos(x);v=sin(x)./cos(x);

subplot(2,2,1),plot(x,y),axis([02*pi -1 1]),title('sin(x)')

subplot(2,2,2),plot(x,z),axis([02*pi -1 1]),title('cos(x)')

subplot(2,2,3),plot(x,u),axis([02*pi -1 1]),title('2sin(x)cos(x)')

subplot(2,2,4),plot(x,v),axis([02*pi -20 20]),title('sin(x)/cos(x)')

Matlab繪製三維圖,最常用的是surf、mesh這兩個函數及其衍生函數。

 

x=linspace(-2,2, 25); % 在x軸上取25點
y=linspace(-2, 2, 25); % 在y軸上取25點
[xx,yy]=meshgrid(x, y); % xx和yy都是21x21的矩陣
zz=xx.*exp(-xx.^2-yy.^2); % 計算函數值,zz也是21x21的矩陣
surf(xx, yy, zz); % 畫出立體曲面圖

以peaks函數為例,以各種不同方法進行繪圖
1、meshz可將曲面加上圍裙:
[x,y,z]=peaks;
meshz(x,y,z);
axis([-inf inf -inf inf -inf inf]);

2、waterfall可在x方向或y方向產生水流效果:
[x,y,z]=peaks;
waterfall(x,y,z);
axis([-inf inf -inf inf -inf inf]);

3、y方向的水流效果:
[x,y,z]=peaks;
waterfall(x',y',z');
axis([-inf inf -inf inf -inf inf]);

4、meshc可以同時畫出網狀圖與等高線:
[x,y,z]=peaks;
meshc(x,y,z);
axis([-inf inf -inf inf -inf inf]);

5、surfc同時畫出曲面圖與等高線:
[x,y,z]=peaks;
surfc(x,y,z);
axis([-inf inf -inf inf -inf inf]);

6、對比meshc、meshz、surfc、surfl這四個函數

[x,y]=meshgrid(0:0.1:2,1:0.1:3)

z=(x-1).^2+(y-2).^2-1

subplot(2,2,1);meshc(x,y,z)

subplot(2,2,2);meshz(x,y,z)

subplot(2,2,3);surfc(x,y,z)

subplot(2,2,4);surfl(x,y,z)

舉一個例子,使用同一色圖,以不同著色方式繪製圓錐體。

[x,y,z] =cylinder(pi:-pi/5:0,10)

colormap(lines)

subplot(1,3,1)

surf(x,y,z);

shading flat

subplot(1,3,2)

surf(x,y,z);

shading interp

subplot(1,3,3)

surf(x,y,z)

作者:極值學院佔學長

相關焦點

  • 有了這張matlab繪圖速查表,您還用擔心matlab繪圖嗎?
    繪圖速查表,初看文章封面還以是簡單的PS拼湊而成。等進入文章才發現張博士竟然是用純matlab繪製的,而張博士也在其GitHub帳戶中公開了的相關原始碼。除了這張速查表本身對matlab繪圖大有裨益外,繪製出這張的圖原始碼也是非常值得大家研究學習,涉及到界面布局排版、matlab坐標軸操控、文本線形操控等多個matlab繪圖知識。相信如果大家認真研究該原始碼後,對提高大家的matlab繪圖水平肯定是大有幫助。
  • 史上最全matlab科研繪圖函數匯總,拿走不謝
    >詳見:如何用matlab輸出論文級圖片?)小編在瀏覽matlab官方幫助文檔時無意間發現一個非常全面的繪圖函數匯總,根據小編統計,分為11繪圖大類,共計74個函數。,建議大家先收藏保存,有時間再一一去試,小編已經先行完成了以上所有函數的測試工作。
  • 這些論文繪圖軟體,哪個你會用?
    從大量的數據資料中獲得所需的效果圖,已經有很多前輩們為咱們趟好了路,留下了大量的繪圖軟體及經驗。接下來小編將為大家介紹一些功能強大的繪圖軟體。Matlab只排在第十位是因為本來它就不是一個用來做畫圖的軟體。人家的主要功能是矩陣操作、統籌優化、數學實驗、仿真模擬(此處省略一萬字)等等好嗎?用matlab畫圖簡直就是高射炮打蚊子——大材小用。
  • 這些論文繪圖軟體,你會用哪個?
    從大量的數據資料中獲得所需的效果圖,已經有很多前輩們為咱們趟好了路,留下了大量的繪圖軟體及經驗。接下來小編將為大家介紹一些功能強大的繪圖軟體。Matlab只排在第十位是因為本來它就不是一個用來做畫圖的軟體。人家的主要功能是矩陣操作、統籌優化、數學實驗、仿真模擬(此處省略一萬字)等等好嗎?用matlab畫圖簡直就是高射炮打蚊子——大材小用。
  • 【技能】十大必備論文繪圖軟體,你會用哪些?
    人家的主要功能是矩陣操作、統籌優化、數學實驗、仿真模擬(此處省略一萬字)等等好嗎?用matlab畫圖簡直就是高射炮打蚊子——大材小用。如果非要只比較它的畫圖能力,只能說呵呵了,下面是Matlab的畫風,淡淡的鋸齒風一直被網友所吐槽。
  • MATLAB基礎課程v2 第二章 MATLAB繪圖知識(8)
    scatter(X,Y):X和Y是數據向量,以X中數據為橫坐標,以Y中數據位縱坐標描繪散點圖,點的形狀默認使用圈。例子:X = [1:100];Y = X + rand(size(X));scatter(X, Y)可用於通信仿真中表示信號的星座圖,當然也在數據分析的很多地方可以用!!!
  • MATLAB中的數據插值函數
    griddata函數功能 數據格點格式(1)ZI = griddata(x,y,z,XI,YI)用二元函數z=f(x,y)的曲面擬合有不規則的數據向量x,y,z。griddata 將返回曲面z 在點(XI,YI)處的插值。曲面總是經過這些數據點(x,y,z)的。輸入參量(XI,YI)通常是規則的格點(像用命令meshgrid 生成的一樣)。
  • matlab量化投資基本操作:數據導入與簡單繪圖(1)
    這次會涉及到對經典算法的講解,並附送給大家可供學習的源碼。  所以你可以理解為,今天開始,部分基礎講稿,就通過公眾號放出了。  matlab的用途  MATLAB是matrix&laboratory兩個詞的組合,意為矩陣工廠(矩陣實驗室)。
  • matlab繪圖(六)-圖像光滑&數據取點
    當然之前中過冷水多次有跟大家提多項式擬合、傅立葉級數擬合、高斯級數擬合,實際更加常見的操作是用matlab中圖像擬合工具箱cftool靈活進行函數擬合。首先我們需要先把函數工具擬合方法生成代形式:h=plot(x1,y1)x=get(h,'xdata');y=get(h,'ydata');該段代碼主要是有時候再特殊情況下我們先是得到具體的函數圖像而不是繪圖數據,所以就需要使用該段代碼就有用了。冷水現在再講講如何提取特殊點方法。
  • 代碼詳解——MATLAB出圖:常用函數
    通過仿真獲得數據後,還需要通過MATLAB將數據繪製成圖片插入論文中,本期代碼詳解將著重介紹路徑跟蹤控制繪圖常用的函數。
  • 如何讓matlab心甘情願地做你的文件搬運工
    咱們先來看matlab有哪些與文件操作相關的函數表吧!函數名稱函數功能movefile移動或重命名文件或文件夾:帶你去浪漫的土耳其!copyfile複製文件或文件夾:一生二、二生三、三生萬物 ……delete刪除文件或對象:沒有我刪不掉的文件,嘻嘻!rmdir刪除文件夾:我刪、我刪、我刪刪!mkdir新建文件夾:我建、我建、我建建!
  • Matlab函數大全
    .. .. .... 7 7.管理命令控制窗口 (command 窗口 ) .. ... 7 8.文件和工作環境 .. .. ... 8 9.啟動和推出 matlab .. .. ... 8 10.
  • matlab vs R
    當然,你可以選擇使用 x(:) 的方式來獲得列向量,前提是 x 是一個變量,但在這裡,直接使用 reshape() 會更加便捷一些。可以將 matlab 的行向量與列向量與 R 的向量等同,其他部分則需要與 矩陣、數組做比較,這裡不再過多闡述。
  • 最強matlab繪圖輔助工具——PlotHub更新了
    別急,等小編來告訴你哪裡更新了。往期回顧>>>>>>小編帶你玩轉PlotHub!順帶答疑解惑!正式版震撼來襲,帶給你極致繪圖體驗!如何讓matlab心甘情願地做你的文件搬運工這6個命令助你玩轉matlab自定義函數歡迎各位小夥伴加入原創代碼共享QQ群,把您的原創代碼
  • 詳解Matlab基本函數與繪圖命令 文末附福利
    ① 二維圖形二維繪圖的基本命令有 plot,loglog,semilogx,semilogy 和 polar。它們的使用方法基本相同,其不同特點是在不同的坐標中繪製圖形。二維繪圖命令 plot 為了適應各種繪圖需要,提供了用於控制線色、數據點和線型的 3 組基本參數。它的使用格式如下:plot(x,y,』color_point_linestyle』)◾該命令是繪製 y 對應 x 的軌跡的命令。◾y 與 x 均為向量,且具有相同的元素個數。
  • matlab標量函數的可視化
    matlab標量繪圖mesh or surf常見不多說,注意xy為網格坐標,mesh類有meshc,meshz;surf類有surfc,surflx=linspace(-2,2,25);y=linspace(-2,2,25);[xx,yy]=meshgrid(x,
  • 告訴你!Matlab中幾個數值積分函數的比較和優缺點
    trapz(y)二、[q,fcnt]= quad(fun,a,b,tol,trace,p1,p2...)Infinite or Not-a-Number function value encountered'意味著在積分計算時,區間內出現了浮點數溢出或者被零除。例2
  • 這10款論文繪圖軟體,除了Matlab,你可能一個都不會,最後一個讓人很無語……
    從大量的數據資料中獲得所需的效果圖,已經有很多前輩們為咱們趟好了路,留下了大量的繪圖軟體及經驗。接下來小編將為大家介紹一些功能強大的繪圖軟體。Matlab只排在第十位是因為本來它就不是一個用來做畫圖的軟體。人家的主要功能是矩陣操作、統籌優化、數學實驗、仿真模擬(此處省略一萬字)等等好嗎?用matlab畫圖簡直就是高射炮打蚊子——大材小用。
  • TechRepo | Matlab作圖
    axis 用於指定 x 軸和 y 軸的範圍(比如如果有離群值,matlab 默認會將所有數據放入畫面中,不美觀)。matlab 還有各種二維作圖函數bar 條形圖errorbar 含誤差條的線圖area 填充區二維繪圖stairs 階梯圖stem 針狀圖(繪製離散序列數據)fplot 繪製表達式或函數polar (不推薦)極坐標圖histogram 直方圖rose 角度直方圖
  • matlab科研繪圖模板,拿走不謝【精品乾貨】
    今天給大家分享的是matlab科研繪圖模板,是原創代碼共享