Matlab 的常用繪圖命令(包括簡單的雙y軸)

  • 本文主要列出博主在作通信仿真時,用到的一些繪圖命令,通過程序示例說明
  • matlab支持LaTex語法

一、單座標軸

  • 代碼示例
figure(1);
subplot(2,1,1);

1、figure(1)指定下列圖片爲第一幅圖,與figure(2)爲獨立窗口;
2、subplot(2,1,1) 指定下列圖片爲第一子圖,圖片爲2×12\times1排列,當前圖片作爲第一幅圖,按照先行後列與其它子圖依次排列。

snr1 = -5:2:17;
semilogy(snr1, seed1, 'rs-', snr1, seed2, 'ks-');

1、semilogy爲作圖樣式,也可以是plot,stem等;
2、 snr1爲橫座標,seed1、seed2爲縱座標;
3、引號內爲線條樣式,按順序分別代表顏色、數據點形狀、連線樣式(k黑r紅,s方塊,-直線)

hold on;

本圖片線條保持在下一作圖中

grid on;

加入網格

set(gca,'xtick',-5:2:17);

gca表示當前繪圖區域,'xtick’設置橫座標網格顯示間隔

set(gca,'box','off','Ytick',[])

去掉上面與右邊座標邊框

xlim([-5,17]);
axis( [xmin xmax ymin ymax] )    

1、強制限制橫座標顯示範圍爲[-5,17]
2、設置當前座標軸 x軸 和 y軸的限制範圍

set(gca,'FontName','Times New Roman')

設置座標軸字體(中文字體Times New Roman亂碼,需要重新指定字體)

xlabel('誤差位個數');ylabel('頻數');

表示x軸與y軸的說明

legend('AWGN頻偏1.01','13徑頻偏2.49');
legend('\fontname{Times new roman} AWGN \fontname{宋體}頻偏\fontname{Times new roman} 1.01', ...
       '\fontname{Times new roman}13\fontname{宋體}徑 \fontname{宋體}頻偏 \fontname{Times new roman}2.49');

1、legend爲曲線按順序添加圖例;
2、\fontname{Times new roman} 表示後面文字格式爲Times new roman,宋體同理,間隔不同字體需要分別添加字體格式化,這一方法也適用於其它文字字體的格式化輸出;
3、也可以通過num2str(*)將數字類型變量顯示在legend中。

title('\fontname{宋體}頻偏估計性能');
title([num2str(number_)  ' ' '幀 ']);

1、title表示題目;
2、可以使用char類型向量拼接題目,number_爲數字類型變量,’ '爲空格;

text(3,2,'z1')

在座標(3,2)處顯示z1

二、雙座標軸

  • 代碼示例(數據擬合)
[mu sigma] = normfit(data);                    %得到數據data的均值與標準差
[y,x] = hist(data , 10);                       %得到數據的直方圖數據(將橫座標最大值與最小值之間的範圍分爲10份)
bar(x,y,'Facecolor','r','Edgecolor','w');      %作直方圖,柱體紅色,背景白色
box off;                                       %關閉邊框(防止對第二y軸造成影響)
xlim([mu - 3*sigma,mu + 3*sigma]);             %設置橫座標範圍

A2 = axes;                                                     %設置笛卡爾座標系
fplot(@(x)normpdf(x,mu,sigma),[mu - 3*sigma,mu + 3*sigma]);    %對第二座標系作圖
set(A2,'box','off','yaxislocation','right','color','none');    %設置第二座標系參數,關閉邊框,y軸置於右邊,背景設置爲無色

前五行繪製第一個y軸對應圖像;
後三行設置第二y軸對應圖像。

  • 圖片示例
    在這裏插入圖片描述
  • 其它的雙y軸作圖
X=-5:5;
Y1=[1:5 3:8];
Y2=[0.1 -5:2:13];

figure(1);

yyaxis left;       %左邊y軸
plot(X,Y1);
ylabel('left');

yyaxis right;      %右邊y軸
plot(X,Y2);
ylabel('right');

微信公衆號:通信隨筆XIDIAN

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章