我正在绘制我设计的陷波滤波器的幅度和相位响应,我需要标记截止频率以及陷波频率点。如果您点击图表,我想显示相同的信息。有没有办法强制MATLAB显示如果你点击一个点就显示的那个框?
答案 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)]);
如果需要,我们可以再次移动此数据提示。
set(datatip, 'Position', [xdata(1), ydata(1)]);
非常好的一点是,使用cursorMode
对象我们还可以创建更多数据提示
datatip2 = cursorMode.createDatatip(handle(hLine));
set(datatip2, 'Position', [xdata(75), ydata(75)])
通过将此信息与您自己的图表和数据相结合,您应该能够自动地放置您需要的数据提示。