下面有解决方案!
这(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
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
当您使用此更新功能将数据提示,它看起来像一个如下图。
我不认为你可以看到一个二维图第三个维度的价值。 你可以尝试做冲浪(X,Y,T)或plot3(X,Y,T),使你得到一个三维图,并用正确的方向,你可以得到所需的情节和所有所需的X,Y和T值。