主頁 >  其他 > MATLAB繪圖總結

MATLAB繪圖總結

2021-02-01 10:50:41 其他

目錄

  • 一些常用的MATLAB繪圖方法
  • 二維影像繪制
    • plot和fplot
    • 對數坐標圖
    • 極坐標圖
    • 條形圖
    • 直方圖
    • 面積圖
    • 散點圖
    • 矢量圖
    • 雙坐標軸
  • 三維作圖
    • 三維曲面
    • 熱力圖
  • 圖形修飾
    • 基本繪圖指令
    • 圖形標注
    • 圖形視窗處理
    • 色彩處理
  • 總結

一些常用的MATLAB繪圖方法

總結一下一些常用的MATLAB的繪圖函式和引數設定,增強結果的可視化程度,


二維影像繪制

二維影像是在不同的平面坐標上將資料點連接起來的平面影像,常用的平面坐標有,直角坐標、極坐標、對數坐標等,MATLAB有很多常用的指令來繪制不同的二維影像,

plot和fplot

MATLAB中最常用的兩個二維函式繪制函式plot()fplot()

plot - 二維線圖
此 MATLAB 函式 創建 Y 中資料對 X 中對應值的二維線圖, 如果 X 和 Y 都是向量,則它們的長度必須相同,plot 函式繪制 Y 對 X 的圖,
如果 X 和 Y 均為矩陣,則它們的大小必須相同,plot 函式繪制 Y 的列對 X 的列的圖,
如果 X 或 Y中的一個是向量而另一個是矩陣,則矩陣的各維中必須有一維與向量的長度相等.
如果矩陣的行數等于向量長度,則 plot函式繪制矩陣中的每一列對向量的圖,
如果矩陣的列數等于向量長度,則該函式繪制矩陣中的每一行對向量的圖,如果矩陣為方陣,則該函式繪制每一列對向量的圖, 如果 X 或Y 之一為標量,而另一個為標量或向量,則 plot 函式會繪制離散點,但是,要查看這些點,您必須指定標記符號,例如 plot(X,Y,‘o’),

fplot - 繪制運算式或函式
此 MATLAB 函式 在默認區間 [-5 5](對于 x)繪制由函式 y = f(x) 定義的曲線,

例:繪制 y = 2 x ? sin ? ( x ) y = 2x·\sin(x) y=2x?sin(x)的函式影像,MATLAB程式如下:

x=[-5:0.01:5];
y=2*x.*sin(x);
a=plot(x,y)%繪制函式并獲得其句柄
x=[-5:0.01:5];
y=@(x) 2*x.*sin(x);
fplot(y)

結果如下:
在這里插入圖片描述

上述只是plot()fplot() 的簡單使用,為使繪制出的影像更具有自明性,我們還需要對影像進行調整,

hold on %保持影像
grid on %增加網格
xlabel('x'); %x軸
ylabel('y'); %y軸
title('y=2xsin(x)'); %標題
legend('y=2xsin(x)'); %圖例
a.Color='r'; %曲線顏色設定

結果如下:
在這里插入圖片描述
可見影像的自明性有很大提升,此外下表列出了曲線線性、顏色、資料點等引數屬性

在這里插入圖片描述

對數坐標圖

semilogx(x1,y1,'引數',x2,y2,'引數'...)
semilogy(x1,y1,'引數,x2,y2','引數'...)
loglog(x1,y1,'引數',x2,y2,'引數'...)

semilogx 函式x軸為對數刻度,y軸為線性刻度;semilofy 函式 x軸為線性刻度;loglog函式x軸,y軸均為對數刻度,

極坐標圖

polar(theta,rho,'引數')

theta為極角,rho為極徑,引數內容與plot相同,

條形圖

bar(y,style)
bar(x,y,style)

此 MATLAB 函式 創建一個條形圖,y 中的每個元素對應一個條形,如果 y 是 m×n 矩陣,則 bar 創建每組包含 n 個條形的 m 個組,
style 用于指定分組排列模式,模式有grouped(簇狀分組)和stacked(堆積分組)兩種,

x = [2018,2019,2020];
y = [10,20,30,40,50;10,20,30,40,50;10,20,30,40,50];
subplot(1,2,1);%圖形視窗分隔,下文會講解其使用
bar(x,y,'grouped')
subplot(1,2,2);
bar(x,y,'stacked')

結果如下:

直方圖

hist(y)
hist(y,x)

其中,y是要統計的資料,x用于指定區間的劃分方式,若x是標量,則統計區間均分成x個小區間;若x是向量,則向量x中的每一個數指定分組中心值,元素的個數為資料分組數,x預設時,默認按10個等磁區間進行統計,

rose(theta[],x)

其中,引數theta用于確定每一區間與原點的角度,選項x用于指定區間的劃分方式,

面積圖

score = [10,25,3,18,41];
ex = [0,0,0,0,1];%1的位置對應的那塊原理圓心
pie(score,ex);

結果如下:
在這里插入圖片描述

pie(X,explode,labels)
此 MATLAB 函式使用 X 中的資料繪制餅圖,餅圖的每個扇區代表 X 中的一個元素,

散點圖

scatter(x,y,sz,‘filled’)
此 MATLAB 函式 在向量 x 和 y 指定的位置創建一個包含圓形的散點圖,該型別的圖形也稱為氣泡圖,

sz用于指定線性、顏色、資料點標記,‘filled’用于指定資料點填充,若省略則默認是空心點,
例:畫一個愛心,組成愛心的點是五角星

t = 0:pi/50:2*pi;
x = 16*sin(t).^3;
y = 13*cos(t)-5*cos(2*t)-2*cos(3*t)-cos(4*t);
scatter(x,y,'rp','filled');

結果如下:

矢量圖

quiver - 箭頭圖或速度圖
quiver(x,y,u,v,LineSpec,‘filled’)
此 MATLAB 函式 在 x 和 y 中每個對應元素對組所指定的坐標處將向量繪制為箭頭,矩陣 x、y、u 和 v必須大小相同并包含對應的位置和速度分量,但是,如下節所述,x 和 y還可以是向量,默認情況下,箭頭縮放到剛好不重疊,但您可以根據需要將箭頭縮放的長一些或短一些,

[x,y]為起點坐標,[u,v]為重點坐標,LinSpec設定線性、顏色,
例:

%已知向量A、B,求A+B,并用矢量圖表示,
A = [4,5]; B = [-10,0]; C = A+B;
hold on 
quiver(0,0,A(1),A(2),'-b');
quiver(0,0,B(1),B(2),'--black');
quiver(0,0,C(1),C(2),'-.g');
text(A(1),A(2),'A');text(B(1),B(2),'B');text(C(1),C(2),'C');
axis([-12,6,-1,6]);
grid on

結果如下:

雙坐標軸

plotyy - 創建具有兩個 y 軸的圖形
此 MATLAB 函式 繪制 Y1 對 X1 的圖,在左側顯示 y 軸標簽,并同時繪制 Y2 對 X2 的圖,在右側顯示 y 軸標簽,
plotyy(X1,Y1,X2,Y2,‘function1’,‘function2’)

例:

clear;clc;
x	= 	[0:0.01:20];
y1	=	200*exp(-0.05*x).*sin(x);
y2	=	0.8*exp(-0.5*x).*sin(10*x);
plotyy(x,y1,x,y2);
legend('y1=200*exp(-0.05*x).*sin(x)','y2=0.8*exp(-0.5*x).*sin(10*x)');

結果如下:
在這里插入圖片描述


三維作圖

上文講到了許多常用的二維影像繪制的函式和方法,下面我們將介紹一些常用的MATLAB三維影像繪制函式,


## plot3和fplot3 >plot3 - 三維點或線圖 >plot3(X1,Y1,Z1,LineSpec1,...,Xn,Yn,Zn,LineSpecn) >此 MATLAB 函式 繪制三維空間中的坐標, 要繪制由線段連接的一組坐標,請將 X、Y、Z 指定為相同長度的向量, 要在同一組坐標軸上繪制多組坐標,請將X、Y 或 Z 中的至少一個指定為矩陣,其他指定為向量,

例:繪制空間螺旋線影像,其引數方程為
x = sin ? ( t ) + t cos ? ( t ) ; y = cos ? ( t ) ? t sin ? ( t ) ; z = t ; x=\sin(t)+t\cos(t);y=\cos(t)-t\sin(t);z=t; x=sin(t)+tcos(t);y=cos(t)?tsin(t);z=t;

t = [0:0.1:10*pi];
x = sin(t)+t.*cos(t);
y = cos(t)-t.*sin(t);
z = t;
plot3(x,y,z);

結果如下:

其使用與plot很想,也可以使用plot的引數改變空間曲線的線性、顏色、點標識,同時為增加影像的自明性,也可以對影像加上軸標簽,標題,圖例等,

fplot3 - 三維引數化曲線繪圖函式
fplot3(funx,funy,funz,tinterval,LineSpec)
此 MATLAB 函式 在默認區間 [-5,5](對于 t)繪制由 x = funx(t)、y = funy(t) 和 z = funz(t)定義的引數化曲線,

其使用與fplot基本一致,

三維曲面

繪制三維曲面的一些函式

mesh(x,y,z,c)
surf(x,y,z,c)
mesh(z,c)
surf(z,c)

各引數的意義:x,y是網格坐標矩陣,z是網格點上的高度矩陣,c用于指定不同高度下的曲面顏色,c省略時,顏色設定為正比于圖形的高度,
此外還有一些其他的繪制三維影像的函式

帶等高線的三維網格曲面函式meshc
帶底座的三維網格曲面函式meshz
具有等高線的曲面函式surfc
具有光照效果的曲面函式surfl

熱力圖

heatmap - 創建熱圖 h = heatmap(tbl,xvar,yvar,‘ColorVariable’,cvar) 此
MATLAB 函式 基于表 tbl 創建一個熱圖,并回傳 HeatmapChart 物件,xvar 輸入引數指示沿 x
軸顯示的表變數,yvar輸入引數指示沿 y 軸顯示的表變數,默認顏色基于計數聚合,這種方法計算每對 x 和 y
值一起出現在表中的總次數,可使用 h在創建熱圖之后對其進行修改,有關屬性串列,請參閱 HeatmapChart 屬性,

圖形修飾

基本繪圖指令

在這里插入圖片描述


綜上介紹了一些常用的MATLAB作圖函式,此外我將介紹另外一種更方便的作圖方法,這樣你在忘記這些函式的時候,也可以做出需要的結果影像,

在MATLAB界面的“作業區”,找到你要繪制影像的變數,雙擊進入“變數”界面,全部選中后,點擊界面上面的“繪圖”這里有MATLAB所有的繪圖函式,點擊即可繪制對應影像,是不是簡單呢

筆者的MATLAB版本為R2020a,上述辦法并不一定適用于讀者的MATLAB,可能需要自己去尋找變數界面,

圖形標注

title(圖形標題)
xlabel(x軸說明)
ylabel(y軸說明)
text(x,y,文本說明)
legend(1,圖2...,引數...)

在plot函式介紹部分已經介紹了這些標注方法的使用,

圖形視窗處理

視窗分隔

subplot - 在平鋪位置創建坐標區
subplot(m,n,p)
此 MATLAB 函式 將當前圖窗劃分為 m×n 網格,并在 p 指定的位置創建坐標區,
MATLAB按行號對子圖位置進行編號,第一個子圖是第一行的第一列,第二個子圖是第一行的第二列,依此類推,如果指定的位置已存在坐標區,則此命令會將該坐標區設為當前坐標區,

視窗視角

  • 方位角:視點與原點連線在xy平面上的投影與y軸負方向形成的角度,正值表示逆時針,負值表示順時針,

  • 仰角:視點與原點連線與xy平面的夾角,正值表示視點在xy平面上方,負值表示視點在xy平面下方,

view - 照相機視線
view(az,el)
此 MATLAB 函式 為當前坐標區設定照相機視線的方位角和仰角,
其中az為方向角,el為仰角,系統默認的視點方向角為-37.5°,仰角為30°

色彩處理

  • Colormap
    創建色圖矩陣
camp=colormap(parula(5));

parula是內置的色圖種類之一,MATLAB所有內置色圖如下:

指定當前圖形使用的色圖

	%以peaks為例,先渲染圖形,后緊跟色圖種類即可
	surf(peaks);
	colormap cool
	colorbar%顯示顏色條

結果如下:

  • 用shading函式改變染色方式

shading - 設定顏色著色屬性
此 MATLAB 函式 每個網格線段和面具有恒定顏色,該顏色由該線段的端點或該面的角邊處具有最小索引的顏色值確定,
shading flat —網格片和網格線都是對應顏色
shading faceted —網格片是對應顏色,網格線是黑色
shading interp —網格片內采用顏色插值

例:對同一色圖用不同的染色方式

[x,y] = meshgrid(-5:1:5,-5:1:5);
z = x.^2 + y.^2 - 10*cos(2*pi*x) - 10*cos(2*pi*y) + 20;
colormap(cool)
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繪圖的常用函式以及影像修飾方法,希望對各位有所幫助,
此外如果忘記了這些函式,也可以在生成初始影像時在figure視窗的插入部分對影像進行標注,或打開屬性檢查器,進行更詳細的屬性設定和影像標注,希望大家能多研究這個屬性檢查器對修改圖形有非常大的幫助,

第一次寫博客,希望得到您的認可,對您有所幫助,鞠躬

本文借鑒了其他很多博主的文章,在此表示對這些大佬的感謝,
https://blog.csdn.net/weixin_45634606/article/details/104422695
https://blog.csdn.net/woaiyyt/article/details/112983849

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/255137.html

標籤:AI

上一篇:Anaconda+python+pytorch環境安裝最新教程

下一篇:C語言編程>第二十二周 ③ 下列給定的程式中,函式fun的功能是根據整型形參n,計算如下公式的值:

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 2023年最新微信小程式抓包教程

    01 開門見山 隔一個月發一篇文章,不過分。 首先回顧一下《微信系結手機號資料庫被脫庫事件》,我也是第一時間得知了這個訊息,然后跟蹤了整件事情的經過。下面是這起事件的相關截圖以及近日流出的一萬條資料樣本: 個人認為這件事也沒什么,還不如關注一下之前45億快遞資料查詢渠道疑似在近日復活的訊息。 訊息是 ......

    uj5u.com 2023-04-20 08:48:24 more
  • web3 產品介紹:metamask 錢包 使用最多的瀏覽器插件錢包

    Metamask錢包是一種基于區塊鏈技術的數字貨幣錢包,它允許用戶在安全、便捷的環境下管理自己的加密資產。Metamask錢包是以太坊生態系統中最流行的錢包之一,它具有易于使用、安全性高和功能強大等優點。 本文將詳細介紹Metamask錢包的功能和使用方法。 一、 Metamask錢包的功能 數字資 ......

    uj5u.com 2023-04-20 08:47:46 more
  • vulnhub_Earth

    前言 靶機地址->>>vulnhub_Earth 攻擊機ip:192.168.20.121 靶機ip:192.168.20.122 參考文章 https://www.cnblogs.com/Jing-X/archive/2022/04/03/16097695.html https://www.cnb ......

    uj5u.com 2023-04-20 07:46:20 more
  • 從4k到42k,軟體測驗工程師的漲薪史,給我看哭了

    清明節一過,盲猜大家已經無心上班,在數著日子準備過五一,但一想到銀行卡里的余額……瞬間心情就不美麗了。最近,2023年高校畢業生就業調查顯示,本科畢業月平均起薪為5825元。調查一出,便有很多同學表示自己又被平均了。看著這一資料,不免讓人想到前不久中國青年報的一項調查:近六成大學生認為畢業10年內會 ......

    uj5u.com 2023-04-20 07:44:00 more
  • 最新版本 Stable Diffusion 開源 AI 繪畫工具之中文自動提詞篇

    🎈 標簽生成器 由于輸入正向提示詞 prompt 和反向提示詞 negative prompt 都是使用英文,所以對學習母語的我們非常不友好 使用網址:https://tinygeeker.github.io/p/ai-prompt-generator 這個網址是為了讓大家在使用 AI 繪畫的時候 ......

    uj5u.com 2023-04-20 07:43:36 more
  • 漫談前端自動化測驗演進之路及測驗工具分析

    隨著前端技術的不斷發展和應用程式的日益復雜,前端自動化測驗也在不斷演進。隨著 Web 應用程式變得越來越復雜,自動化測驗的需求也越來越高。如今,自動化測驗已經成為 Web 應用程式開發程序中不可或缺的一部分,它們可以幫助開發人員更快地發現和修復錯誤,提高應用程式的性能和可靠性。 ......

    uj5u.com 2023-04-20 07:43:16 more
  • CANN開發實踐:4個DVPP記憶體問題的典型案例解讀

    摘要:由于DVPP媒體資料處理功能對存放輸入、輸出資料的記憶體有更高的要求(例如,記憶體首地址128位元組對齊),因此需呼叫專用的記憶體申請介面,那么本期就分享幾個關于DVPP記憶體問題的典型案例,并給出原因分析及解決方法。 本文分享自華為云社區《FAQ_DVPP記憶體問題案例》,作者:昇騰CANN。 DVPP ......

    uj5u.com 2023-04-20 07:43:03 more
  • msf學習

    msf學習 以kali自帶的msf為例 一、msf核心模塊與功能 msf模塊都放在/usr/share/metasploit-framework/modules目錄下 1、auxiliary 輔助模塊,輔助滲透(埠掃描、登錄密碼爆破、漏洞驗證等) 2、encoders 編碼器模塊,主要包含各種編碼 ......

    uj5u.com 2023-04-20 07:42:59 more
  • Halcon軟體安裝與界面簡介

    1. 下載Halcon17版本到到本地 2. 雙擊安裝包后 3. 步驟如下 1.2 Halcon軟體安裝 界面分為四大塊 1. Halcon的五個助手 1) 影像采集助手:與相機連接,設定相機引數,采集影像 2) 標定助手:九點標定或是其它的標定,生成標定檔案及內參外參,可以將像素單位轉換為長度單位 ......

    uj5u.com 2023-04-20 07:42:17 more
  • 在MacOS下使用Unity3D開發游戲

    第一次發博客,先發一下我的游戲開發環境吧。 去年2月份買了一臺MacBookPro2021 M1pro(以下簡稱mbp),這一年來一直在用mbp開發游戲。我大致分享一下我的開發工具以及使用體驗。 1、Unity 官網鏈接: https://unity.cn/releases 我一般使用的Apple ......

    uj5u.com 2023-04-20 07:40:19 more