在MATLAB中添加特定的点信息

时间:2016-03-06 08:06:04

标签: matlab

我正在绘制我设计的陷波滤波器的幅度和相位响应,我需要标记截止频率以及陷波频率点。如果您点击图表,我想显示相同的信息。有没有办法强制MATLAB显示如果你点击一个点就显示的那个框?

我附上了一张显示我的意思的图片。我想在我选择的特定频率点上得到一个这样的盒子。 enter image description here

2 个答案:

答案 0 :(得分:1)

这是我为指数函数构建的一个例子:

clear all

figure
f = plot(exp(1:10));

datacursormode on

% get the handle of the data cursor 
hdc = get(gcf,'WindowButtonDownFcn');
dcm = hdc{3}{2};


props.Position = [min(exp(1:10)) log(min(f)) 1];

dcm.createDatatip(f,props);

但是你必须将光标的坐标的定义概括为你的情况。

答案 1 :(得分:0)

使用数据光标(info)的一些未记录的功能,实际上可以更可靠,更健壮地完成。首先,我们将获得该数字的基础datacursormode,然后使用它来添加和移动数据提示(如图中的那个)。

fig = figure();

% Plot some fake data for now
xdata = linspace(0, 2*pi, 100);
ydata = sin(xdata);

hLine = plot(xdata, ydata);

% Get the datacursormode of the current figure and enable it
cursorMode = datacursormode(gcf);
set(cursorMode, 'enable','on')

现在我们有了datacursormode对象,我们可以用它来添加一些新的数据提示。

datatip = cursorMode.createDatatip(handle(hLine));
% X,Y position at which to place the datatip
set(datatip, 'Position', [xdata(50), ydata(50)]);

enter image description here

如果需要,我们可以再次移动此数据提示。

set(datatip, 'Position', [xdata(1), ydata(1)]);

非常好的一点是,使用cursorMode对象我们还可以创建更多数据提示

datatip2 = cursorMode.createDatatip(handle(hLine));
set(datatip2, 'Position', [xdata(75), ydata(75)])

enter image description here

通过将此信息与您自己的图表和数据相结合,您应该能够自动地放置您需要的数据提示。