【发布时间】:2016-03-06 21:07:59
【问题描述】:
我正在绘制我设计的陷波滤波器的幅度和相位响应,我需要标记截止频率以及陷波频率点。如果您单击绘图,我想显示相同的信息。有没有办法强制 MATLAB 显示类似于单击某个点时出现的框?
【问题讨论】:
标签: matlab
我正在绘制我设计的陷波滤波器的幅度和相位响应,我需要标记截止频率以及陷波频率点。如果您单击绘图,我想显示相同的信息。有没有办法强制 MATLAB 显示类似于单击某个点时出现的框?
【问题讨论】:
标签: matlab
这是我为指数函数构建的示例:
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);
但是您必须将光标的坐标定义概括为您的案例。
【讨论】:
这实际上可以使用数据游标的一些未记录的特性(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)]);
如果需要,我们可以再次移动此数据提示。
set(datatip, 'Position', [xdata(1), ydata(1)]);
真正的好处是,使用cursorMode 对象我们还可以创建更多数据提示
datatip2 = cursorMode.createDatatip(handle(hLine));
set(datatip2, 'Position', [xdata(75), ydata(75)])
通过将此信息与您自己的图表和数据相结合,您应该能够可靠地自动放置所需的数据提示。
【讨论】: