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

在这里插入图片描述

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