添加额外的信息,数据点在一块土地上(Adding extra information to data

2019-10-23 04:54发布

下面有解决方案!

这(X,Y)值实际上对应于价值,这是我想看到的情节。 我能做什么?

显然,MATLAB能够显示在数据点框中的多个信息的能力:

只是称其为 “TimePlot(X,Y,T)”,它会工作。 此代码,我相信,也说明在修改数据提示的几个关键点。

 function TimePlot( varargin ) x=varargin{1}; y=varargin{2}; t=varargin{nargin}; fh=figure; plot(varargin{1:nargin-1}) function output_txt = myfunction(obj,event_obj) % Display the position of the data cursor % obj Currently not used (empty) % event_obj Handle to event object % output_txt Data cursor text string (string or cell array of strings). pos = get(event_obj,'Position'); ind=intersect(Find(x,pos(1),1e-10),Find(y,pos(2),1e-10)); if(length(ind)~=1) text='err'; else text=num2str(t(ind),4); end output_txt = {['X: ',num2str(pos(1),4)],... ['Y: ',num2str(pos(2),4)],['T: ',text]}; % If there is a Z-coordinate in the position, display it as well if (length(pos) > 2) output_txt{end+1} = ['Z: ',num2str(pos(3),4)]; end end dcm=datacursormode(fh); datacursormode on set(dcm,'updatefcn',@myfunction) end function [ out ] = Find( vector, value ,precision) if nargin < 3 precision = 0.0001; end out=[]; for i=1:length(vector) if(abs(vector(i)-value)<precision) out=[out i]; end end end 

Answer 1:

MATLAB的中央,你可以找到关于如何创建自定义数据提示了广泛的视频教程: 教程:如何创建一个自定义数据提示的MATLAB

如果您使用标准的数据提示在MATLAB,它会标注一个数据点的X和Y值。 这部影片将展示如何自定义要在数据提示中显示的信息。

有关datacursormode文档,你会发现更多的一些例子(全部来自文档复制以下):

此示例启用在目前的数字数据光标模式,并将数据光标模式选项。 下面的语句

  • 创建一个图
  • 切换数据光标模式到上
  • 获取数据光标模式对象,指定数据提示选项,并获得数据提示占据该行的句柄:
fig = figure;
z = peaks;
plot(z(:,30:35))
dcm_obj = datacursormode(fig);
set(dcm_obj,'DisplayStyle','datatip',...
    'SnapToDataVertex','off','Enable','on')

disp('Click line to display a data tip, then press Return.')
% Wait while the user does this.
pause 

c_info = getCursorInfo(dcm_obj);
% Make selected line wider
set(c_info.Target,'LineWidth',2)

这个例子说明了如何自定义数据光标显示的文本。 例如,您可以替换数据提示和数据窗口(X显示的文本:和y :)用时:和幅度:创建一个简单的更新功能。

在运行之前保存在当前目录下的MATLAB的路径,以下功能或任何可写目录。 由于它们的功能,你可以不选中它们,然后评估选择,以使他们的工作。

将此代码另存doc_datacursormode.m:

function doc_datacursormode % Plots graph and sets up a custom data tip update function 
fig = figure; 
a = -16; 
t = 0:60; 
plot(t,sin(a*t)) 
dcm_obj = datacursormode(fig); 
set(dcm_obj,'UpdateFcn',@myupdatefcn)

将下面的代码作为MATLAB的路径myupdatefcn.m:

function txt = myupdatefcn(empt,event_obj) % Customizes text of data tips

pos = get(event_obj,'Position'); txt = {['Time: ',num2str(pos(1))],...
          ['Amplitude: ',num2str(pos(2))]};

要设置和使用更新功能,类型:

doc_datacursormode

当您使用此更新功能将数据提示,它看起来像一个如下图。



Answer 2:

我不认为你可以看到一个二维图第三个维度的价值。 你可以尝试做冲浪(X,Y,T)或plot3(X,Y,T),使你得到一个三维图,并用正确的方向,你可以得到所需的情节和所有所需的X,Y和T值。



文章来源: Adding extra information to datapoints on a plot