前面有一章介紹了MATLAB在一張圖片中用不同顔色繪制多條曲線的幾個方法。今天我們再介紹一下在畫圖時使用不同的線型、點及标記等。
一、 線型、連續标記
先從最普通的說起。在plot函數中指定線型。
t=linspace(0,5,20);
x1 = t;
x2 = 2*t;
x3 = 3*t;
x4 = 4*t;
plot(t,x1,'b',t,x2,'g-o',t,x3,'r*',t,x4,'c:d');
這是基礎的比較簡單的情況。不做太多叙述。matlab提供的線型、顔色和标記符如下表:
如果指定了标記符号但未指定線型,則 plot僅顯示無線條連接的标記。
A = 1;
f= 1;
x1 = A * sin(2*pi*f*t)./t;
x2 = A * cos(2*pi*f*t-pi/2)./t;
plot(t,x1,'bo',t,x2,'r*');
兩組數據比較
可以通過名稱-值對組參數來設置标記屬性,自定義标記。
t=linspace(0,5,120);
A = 1;
f= 0.2;
x1 = exp(t/10).*sin(4*2*pi*f*t);
plot(t,x1,'b--d','MarkerSize',9,'MarkerEdgeColor','red','MarkerFaceColor',[1 0.6 0.5])
二、在指定位置做标記
如果需要在特定的點做标記,可以使用MarkerIndices(要顯示标記的數據點的索引)設置。
1、比如從第一個數據點開始,每隔十個數據點顯示一個标記。則可設置plot(x,y,'-*','MarkerIndices',1:10:length(y))。
2、假如在最小數據值和最大數據值處顯示紅色标記。首先找到最大最小值。
idxmin = find(y == max(y));
idxmax = find(y == min(y));
然後設置 plot(x,y,'-d','MarkerIndices',[idxmin idxmax]).
同理,我們可以使用MarkerIndices屬性設置需要做标記的指定位置。
plot(x,y,'-d','MarkerIndices',[1 10 18 32]).
注意:MarkerIndices是MATLAB R2016b及之後版本才有的。
3、plot函數中直接指定橫豎坐标
t=linspace(0,5,120);
A = 1;
f= 0.2;
x1 = exp(t/10).*sin(4*2*pi*f*t);
plot(t,x1,t(40),x1(40),'rp',t(75),x1(75),'k*');
4、text添加文字說明
t=linspace(0,5,100);
A = 1;
f= 1;
x1 = A * sin(2*pi*f*t)./t;
plot(t,x1,'b-.',t(6),x1(6),'rp',t(60),x1(60),'md');
text(t(6),x1(6),[ ' \leftarrow' 'P(' num2str(t(6)) ',' num2str(x1(6)) ')' ]);
還可以設置說明顔色。
text(t(6),x1(6),[ ' \leftarrow' 'P(' num2str(t(6)) ',' num2str(x1(6)) ')' ],'color','r');
還可以使用gtext,gtext('輸入内容'),然後在圖片上點擊鼠标确定标記位置。
5、annotation()函數
annotation(lineType,x,y) 創建一個在當前圖窗中的兩個點之間延伸的線條或箭頭注釋。将 lineType 指定為 'line'、'arrow'、'doublearrow' 或 'textarrow'。将 x 和 y 分别指定為 [x_begin x_end] 和 [y_begin y_end] 形式的二元素向量。
比如 annotation('textarrow',x,y) % 坐标x,y是标準化的坐标,其取值在 0~1之間,整個figure窗口左下角為(0, 0),右上角為(1, 1)。
close all;
t=linspace(0,5,100);
A = 1;
f= 1;
x1 = A * sin(2*pi*f*t)./t;
x2= A * sin(2*pi*0.5*t)./t;
plot(t,x1,'r',t,x2,'g');
a = [0.3 0.17];
b = [0.75 0.7];
annotation('textarrow',a,b,'String','f = 1 ');
annotation('textarrow',[0.35 0.25],[0.5 0.39],'String',' f = 0.5 ');
annotation
設置圖窗添加矩形注釋。annotation('rectangle',[x y w h])% 建立矩形注釋對象。
figure
data = [2 4 6 7 8 7 5 2];
stem(data)
dim = [.3 .68 .2 .2];
annotation('rectangle',dim,'Color','red')
謝謝查看!
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!