【问题标题】:Adding specific point info in MATLAB在 MATLAB 中添加特定点信息
【发布时间】:2016-03-06 21:07:59
【问题描述】:

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

我附上了一张图片,说明了我的意思。我想在我选择的特定频率点上得到一个这样的盒子。

【问题讨论】:

    标签: matlab


    【解决方案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);
    

    但是您必须将光标的坐标定义概括为您的案例。

    【讨论】:

      【解决方案2】:

      这实际上可以使用数据游标的一些未记录的特性(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)])
      

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-04-11
        • 1970-01-01
        • 2014-01-03
        • 1970-01-01
        • 2021-12-17
        • 1970-01-01
        • 2013-08-07
        相关资源
        最近更新 更多