資料介紹
簡要
上一篇已經對圖形的屬性有過介紹,在此基礎上來進行二維以及后續(xù)三維圖形的操作(注:沒接觸過其他維度的操作,就不折騰相關的內容了),將會更容易理解這些屬性的用法,當然,全部的屬性使用都來一遍,感覺就不太實際了,大可不必~
簡單說下本篇會涉及的內容,常見的plot使用肯定是要有的,然后就是對圖形做一些操作,顯得更靈活一點,畢竟軟件這么強大,不能只局限于畫簡簡單單的圖形,此外還有就是一些比較特殊的二維圖,比如直方圖,柱狀圖之類的,具體還有啥,慢慢往下看~
~Show?Time~
繪制基礎
這一段的內容,本來是上一篇想寫進去的,不過感覺前后有點不協(xié)調,就留到本篇來寫了,主要作用就是理解圖形的形成機制,和上篇的屬性啥的關聯(lián)不是太大。
要知道,MATLAB是沒法真正繪制連續(xù)圖形的,都是通過”打點“的方式進行繪制,因此要有個離散的概念,比如離散函數y=f(x),然后x的標量數組[x1,x2,x3,...,xn]則對應著y的值[y1,y2,y3,...,yn],然后這兩個數組在直角坐標系中以點序列的形式表示,于是就形成了離散的圖形,而連續(xù)圖形的表示則是把離散區(qū)間進行細化,逼近連續(xù)的形式,在視覺上呈現連續(xù)的效果,畫圖的時候,每兩個離散點用線進行連接,則可表示出該函數的連續(xù)特性,所以在進行操作圖形的時候,要記住點與點之間是對應的,假如x或y缺了點,另一部分就相當于越界了,然后無法對應即繪制失敗。
看接下來的兩個示例,就可以清楚MATLAB中的連續(xù)和離散了
%示例1 離散 x=0:12;%自變量 y=sin(x);%x的對應點 plot(x,y,'r*','markersize',20)%對點進行標記 grid on%開啟網格顯示
示例1運行結果
%示例2 連續(xù) x=0:0.01:12 y=sin(x);%x的對應點 plot(x,y,'r*','markersize',20)%對點進行標記 grid on%開啟網格顯示
示例2運行結果
再補充下完整繪圖的幾個步驟,大致如下:
1)準備數據,二維圖形就是準備橫坐標和縱坐標的數據,三維圖形則需要準備矩形參變量和Z軸數據
2)指定圖形窗口和子圖位置,可以使用figure命令指定圖形窗口,默認是打開Figure1,subplot就可以指定子圖的位置,如果像上述那樣直接進行了plot,則是默認使用Figure1的窗口
3)繪圖,根據數據繪制曲線或曲面圖,可對繪制方式進行設置,如:色彩、線型、數據點標記等
4)注釋,可以設置坐標軸的坐標范圍、刻度等,還能對圖形進行注釋,如:圖名、圖例、文字說明等
5)保存圖片,可以將繪制的圖形保存為.fig后綴的文件,也可轉換為其他格式的圖形文件
以上幾個步驟是相對詳細的繪圖步驟,一般情況下,只進行了步驟1~3,其余的都是使用的默認設置。
plot
plot是最基本的一個二維圖形繪制的函數,輸入plot(a,b)就可以畫出一個分別以a、b為x軸和y軸的圖形,基本的調用格式有以下的幾種,即:
plot(x)plot(x,y)plot(x1,y1,x2,y2,..)
plot(x)中的x可以是向量、實數矩陣或者復數矩陣,若x為實向量,則以x的值為縱坐標,各值對應的下標則為橫坐標,最后以直線連接各點;若x是復數向量,則實部為橫坐標,虛部為縱坐標,然后各點以直線進行順序連接;若x是個實數矩陣,則按列繪制每列元素值相對其下標的連線圖,且同時繪制多條,條數即矩陣列數;若x是個復數矩陣,則分別以x實部矩陣和虛部矩陣的對應元素為橫縱坐標繪制多條連線圖。
plot(x,y)就要直觀一些了,x和y是同維度的向量,以x、y分別為橫縱坐標,將相對應的元素值進行連線;若x是個向量,而y是個與x等維度的矩陣,那么繪制出多條曲線,線條數即y矩陣的另一個維數(非與x的相同維數),如果x和y都是矩陣,且等維度,則以x、y對應列元素為橫縱坐標進行繪制,曲線條數為矩陣行數。
plot(x1,y1,x2,y2,...)就跟plot(x,y)相同了,只是多了元素對,且不同元素對之間不存在約束關系,相對比較獨立,只是在同一個figure里進行顯示。
接下來用plot進行一些使用操作:
繪制多條曲線 clear all close all clc x=0:0.05:5;%x坐標 y1=0.1*x-0.5;%y1坐標 y2=sin(x.^2);%y2坐標 figure plot(x,y1,x,y2)
結果
%2 變量為矩陣時的圖例
clear all close all clc x=0:pi/180:2*pi; y1=sin(x); y2=sin(2*x); y3=sin(3*x); X=[x;x;x]'; Y=[y1;y2;y3]'; plot(X,Y,x,cos(x))
結果
%3 含y坐標變量的鋸齒波 y=[1 0 1 0 1 0]; plot(y)
結果
%4 正弦波 x=0:0.01:10; y=sin(x); plot(x,y)
結果
%5 繪制雙矩陣 x=[1 2 3;4 5 6;7 8 9]; y=[3 2 1;6 5 4;9 8 7]; plot(x,y)
結果
文字標注
一般情況下,我們都會給繪制的圖形添加文字標注,主要的標注方式有以下幾種,其中所述的屬性名和屬性值就是上篇的繪圖基礎所涉及的。
(1) 添加圖形標題
使用title命令,使用格式有兩種,即:
title('string')%在坐標系頂部添加一個文本串即string作為該圖形標題 title('text','屬性名','屬性值','...')%設置標題名的屬性,可以是字體大小、字體名以及字體的粗細等
(2)添加坐標軸標注
使用xlabel、ylabel、zlabel,分別對應x、y、z三個軸,使用方法相同,以xlabel為例表述
xlabel('text')%給當前坐標系中的x軸添加文本標注,即此處的“text” xlabel('text','屬性名','屬性值','...')%設置坐標軸標注文本的屬性,可以是字體大小、字體名以及字體的粗細等
(3)圖例
使用legend函數進行設置
legend(str1,str2,str3,...)%在當前圖中添加多個圖例 legend off %關閉當前坐標圖上的圖例
(4)文本注釋
使用text函數在二維和三維圖形的指定位置進行文本注釋,gtext函數可設置文本注釋可拖動,即通過鼠標移動,單擊后來確定標注的位置。
text(x,y,'string');%在二維圖的(x,y)的位置標注'string' text(x,y,z,'string');%在三維圖的(x,y,z)的位置標注'string' gtext('string')%使用鼠標移動從而確定‘string’的標注位置
示例
程序
x=0:pi/50:2*pi; y1=sin(x); y2=cos(x); figure(1);plot(x,y1,'k-*',x,y2,'b-o');%創(chuàng)建圖形窗口,并對顯示圖形 grid on;%打開柵格 legend('sin(\alpha)','cos(\alpha)');%添加2個圖例 text(pi,0,'\leftarrow sin(\alpha)');%(pi,0)的位置添加文本注釋 gtext('cos(\alpha)\rightarrow');%cos曲線的文本注釋,由使用者通過鼠標移動,單擊后確定放置位置 title('sin(\alpha) & cos(\alpha)');%添加標題 xlabel('\alpha');%添加x軸標注 ylabel('value')%添加y軸標注
結果
線型、點型和顏色
這三個詞對應的就是使用plot函數進行繪制圖形時,對圖形的控制,你想要怎樣線型或者點型的圖,顏色又想要怎樣的,這些都很適用,為了方便理解和使用,將這些標識符以表格形式進行展示:
顏色標識符 |
符號標識符 |
線型標識符 |
|||
r |
紅 |
. |
點 |
- |
實線 |
g |
綠 |
o |
圓圈 |
: |
點線 |
b |
藍 |
x |
x號 |
-. |
點劃線 |
c |
青 |
+ |
+號 |
-- |
虛線 |
m |
品紅 |
* |
星號 |
|
|
y |
黃 |
s |
平方號 |
|
|
k |
黑 |
d |
鉆石 |
|
|
|
|
v |
三角符號(向下) |
|
|
|
|
^ |
三角符號(向上) |
|
|
|
|
<< spa> |
三角符號(向左) |
|
|
|
|
> |
三角符號(向右) |
|
|
|
|
p |
五角星 |
|
|
|
|
h |
六角星 |
|
|
之前用plot的時候也已經用過很多次了,這邊再簡單用幾個標識展示下
x=0:0.1:10; y1=sin(x); y2=cos(x); plot(x,y1,'d-',x,y2,'hc--')
結果
坐標軸設置
在繪圖的時候,如果沒有對坐標軸進行設置,MATLAB將使用默認模式,即直角坐標系,并自動標記刻度,如果有特定的需要,則可以對坐標軸進行設置,可以設置坐標比例、坐標邊界范圍以及坐標軸的形式。
坐標軸的控制指令是axis以及axis+控制指令,下方列出一些常用命令及其含義;
命令 |
含義 |
axis([xmin,xmax,ymin,ymax]) |
設定坐標范圍,需滿足xmin |
axis auto |
使用默認設置 |
axis manual |
使當前坐標范圍不變,之后的圖形都在當前坐標范圍顯示 |
axis fill |
在manual方式下起作用,使坐標充滿整個繪圖區(qū)域 |
axis vis3d |
保持高寬不變,三維旋轉時,避免圖形的大小變化 |
axis ij |
矩陣式坐標,原點在左上方 |
axis xy |
普通直角坐標系,原點在左下方 |
axis equal |
橫、縱坐標采用等長刻度 |
axis on |
使用軸背景 |
axis off |
取消軸背景 |
axis tight |
把數據范圍直接設置為坐標范圍 |
axis square |
使得坐標系為方形 |
axis normal |
默認矩形坐標系 |
axis image |
橫縱軸采用等長的刻度,且坐標框緊貼數據范圍 |
示例
%1 使用默認設置的坐標軸 z=0:0.1:2*pi; x=sin(z); y=cos(z); plot(x,y); axis auto
結果1
%2 使用坐標軸為方形 z=0:0.1:2*pi; x=sin(z); y=cos(z); plot(x,y); axis square
結果2
%3 設定坐標軸范圍 z=0:0.1:2*pi; x=sin(z); y=cos(z); plot(x,y); axis([-2 2 -2 2])
結果3
%4 設定坐標軸范圍且關閉背景 z=0:0.1:2*pi; x=sin(z); y=cos(z); plot(x,y); axis([-2 2 -2 2]); axis off
結果4
圖形疊加繪制
在很多時候,我們會在一張已有曲線的圖形上再繪制一條或多條曲線,從而對各種曲線的關系進行對比分析等,因此在MATLAB中提供了hold命令實現該種功能;
hold on%使得當前軸以及圖形保持而不被刷新掉,然后在此圖中繪制新圖 hold off%使得當前軸以及圖形具備刷新的性質,即新圖替換舊圖 hold %直接相當于on和off的雙向切換
示例
%繪制離散信號通過零階保持器后的波形 t=2*pi*(0:20)/20; y=cos(t).*exp(-0.4*t); stem(t,y,'g'); hold on; stairs(t,y,'r'); hold off;
結果
子圖繪制
子圖很常見,就是在一個窗口里布置多個獨立的圖形,使用subplot函數
subplot(m,n,k)%圖形窗口中將有(m x n)幅子圖,k是當前子圖的編號,編號從左到右,從上到下增加 subplot('position',[left bottom width height])%在指定位置開辟一定寬高的子圖,并設為當前圖,其中[left bottom width height]為設置值,取值范圍[0~1],左下角為(0,0)坐標位置
注:由于子圖是獨立的,因此所有的繪圖指令都可以在子圖中使用;若使用subplot后,想要重新在整個窗口繪圖,則可使用“clf”命令清除已繪圖形再進行繪制,當然直接用close,然后重新創(chuàng)建也可。
示例
%例1 t=(pi*(0:1000)/1000)'; y11=sin(t); y22=sin(5*t); y12=y11.*y22; y21=cos(t); subplot(221);plot(t,y11);axis([0,pi,-1,1]); subplot(222);plot(t,y12);axis([0,pi,-1,1]); subplot(223);plot(t,y21);axis([0,pi,-1,1]); subplot(224);plot(t,y22);axis([0,pi,-1,1]);
結果1
%例2 t=(pi*(0:1000)/1000)'; y11=sin(t); y22=sin(5*t); y12=y11.*y22; y21=cos(t); subplot('position',[0.1 0.5 0.35 0.35]);plot(t,y11);axis([0,pi,-1,1]); subplot('position',[0.5 0.5 0.35 0.35]);plot(t,y12);axis([0,pi,-1,1]); subplot('position',[0.1 0.1 0.35 0.35]);plot(t,y21);axis([0,pi,-1,1]); subplot('position',[0.5 0.1 0.35 0.35]);plot(t,y22);axis([0,pi,-1,1]);
結果2
未完待續(xù)
- 自主導航和繪制二維地圖的機器人
- 如何用MATLAB實現靜態(tài)仿真電子版下載 0次下載
- MATLAB的實驗指導學習教材免費下載 9次下載
- 使用STM32單片機實現二維碼顯示的資料和程序免費下載
- Matlab圖形處理的函數詳細資料說明 6次下載
- Matlab圖形繪制經典案例詳細說明 7次下載
- C語言程序設計教程之二維數組如何應用二維數組的資料概述 3次下載
- QR二維碼生成程序下載 56次下載
- MATLAB的GUI圖形界面編程(精編) 0次下載
- OpenCV3編程入門-源碼例程全集-H-S二維直方圖的繪制 2次下載
- H-S二維直方圖的繪制 1次下載
- 基于MATLAB的數字圖像二維濾波軟件設計
- MATLAB高級圖形繪制技術 0次下載
- MATLAB高級圖形繪制技術 0次下載
- MATLAB圖形繪制基本技術 0次下載
- 二維掃碼頭有效掃描距離是多少,影響二維掃描頭掃碼的因素有哪些 100次閱讀
- 制造二維TMD晶體管面臨的挑戰(zhàn) 1480次閱讀
- 詳解圖形繪制和可視化 789次閱讀
- MATLAB中特殊圖形的繪制示例 914次閱讀
- 30個MATLAB圖形繪制 1735次閱讀
- 20個MATLAB三維圖像繪制的示例演示 2853次閱讀
- 鴻蒙上生成專屬“二維碼” 1634次閱讀
- 二維冰的形成機制 1229次閱讀
- QR二維碼解碼流程與使用方法 1w次閱讀
- 詳解二維碼的安全與隱私保護機制 6967次閱讀
- 二維碼門禁系統(tǒng)是怎樣的工作原理 6118次閱讀
- 立功科技嵌入式平臺“軟”實力——二維碼算法篇 1599次閱讀
- 如何將視頻轉換生成二維碼掃碼觀看 1.2w次閱讀
- MyQR一個簡單又好玩的Python庫快來制作專屬你動態(tài)二維碼吧! 2.2w次閱讀
- 一維卷積、二維卷積、三維卷積具體應用 4908次閱讀
下載排行
本周
- 1電子電路原理第七版PDF電子教材免費下載
- 0.00 MB | 1490次下載 | 免費
- 2單片機典型實例介紹
- 18.19 MB | 92次下載 | 1 積分
- 3S7-200PLC編程實例詳細資料
- 1.17 MB | 27次下載 | 1 積分
- 4筆記本電腦主板的元件識別和講解說明
- 4.28 MB | 18次下載 | 4 積分
- 5開關電源原理及各功能電路詳解
- 0.38 MB | 10次下載 | 免費
- 6基于AT89C2051/4051單片機編程器的實驗
- 0.11 MB | 4次下載 | 免費
- 7藍牙設備在嵌入式領域的廣泛應用
- 0.63 MB | 3次下載 | 免費
- 89天練會電子電路識圖
- 5.91 MB | 3次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234313次下載 | 免費
- 2PADS 9.0 2009最新版 -下載
- 0.00 MB | 66304次下載 | 免費
- 3protel99下載protel99軟件下載(中文版)
- 0.00 MB | 51209次下載 | 免費
- 4LabView 8.0 專業(yè)版下載 (3CD完整版)
- 0.00 MB | 51043次下載 | 免費
- 5555集成電路應用800例(新編版)
- 0.00 MB | 33562次下載 | 免費
- 6接口電路圖大全
- 未知 | 30320次下載 | 免費
- 7Multisim 10下載Multisim 10 中文版
- 0.00 MB | 28588次下載 | 免費
- 8開關電源設計實例指南
- 未知 | 21539次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935053次下載 | 免費
- 2protel99se軟件下載(可英文版轉中文版)
- 78.1 MB | 537791次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420026次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234313次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233045次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191183次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183277次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138039次下載 | 免費
評論