MATLAB 提供对图像细节的无与伦比的控制能力。
无论是将文本插入到合适的位置,还是对坐标轴进行标注,MATLAB 都可以通过命令行轻松生成具有出版品质的图形。它支持 Encapsulated PostScript(EPS)和 Adobe Illustrator 格式输出,可以绘制包含多个坐标轴、承载大量信息的复杂图形。


句柄的概念

对图形进行的大多数操作都会生成具有一组属性的对象。熟悉面向对象编程的用户会意识到,这些函数与数据被封装进了对象中。一个典型的图形窗口中至少包含六个以上的对象,这些对象称为句柄(handles)

一个不太精确但形象的类比是:句柄就像通向多个冰箱的把手,而每个冰箱里面装的东西各不相同。为了增强直观理解,下面列出一个文本句柄的一些属性作为示例。


查找句柄

MATLAB 提供了一些命令来获取你需要的句柄,例如:

h = gcf; % 获取当前图形窗口句柄
h = gca; % 获取当前坐标轴句柄

示例

坐标轴标签

xlabel 用于为当前图形的 x 轴添加标签:

xlabel('string')

你也可以让标签显示为两行文本,或插入变量值:

xlabel({['第一行或第 ', int2str(a), ' 行'], ['第二行或第 ', int2str(b), ' 行']})

ylabel 的用法与 xlabel 类似,只不过在二维图中标签是垂直显示的。


标注最大值位置

以下示例用于在图像中标出某个最大值的位置并注释

% 之前的代码将峰值点的横坐标存入变量 x_peak
plot(lags(1:1000:end), abs_cs(1:1000:end));
ptitle = 'UUT 和源信号的相关性幅值'; 
xlabel('Lag'); 
ylabel('Correlation Magnitude'); 
title(ptitle); 

% 获取 y 轴的最大坐标(用于把文字放在图像顶部)
yloc = max(get(gca, 'YLim'));

% 在峰值位置添加注释箭头
text(lags(x_peak), yloc, [' \leftarrow ', num2str(x_peak), 'ns']);

% 添加附加文字说明
lstr{1} = sprintf(' Test %d', TESTNUM); 
lstr{2} = sprintf(' Unit %d%s', UNITNUM, comparestr); 
text(lags(1), mean(get(gca, 'YLim')), lstr);

该示例展示了如何使用 text 函数在图中添加动态文本,并结合图像中的数值特征进行标注,适用于分析和报告场景。


Last modified: Wednesday, 16 April 2025, 11:07 AM