显示相关数据的Matlab自定义数据提示

时间:2017-02-13 19:13:04

标签: matlab

我想我了解如何根据此Mathworks video中描述的范围自定义现有数据提示。但我想要做的是显示图中所选点的其他相关数据值。

例如,我可以显示位置(x,y,z),但我想显示与该位置的情节相关的时间。

另外,我在同一图上绘制了几组。对plot函数的每次调用都返回一个单独的句柄,因此各个图以分层数据结构组织,使每个实体分开。

我希望自定义数据提示显示与其数据集相关的值,例如该集合的ID值。

有没有办法确定与所选数据点关联的绘图的句柄(数据提示所指的是什么)?

更新

我注意到图中有一个名为“UserData”的字段,我可以附加我的数据。是否有办法从数据提示更新功能中获取此数据?

更新2

我可以看到datatip回调传递了一个名为“event_obj”的句柄。这是一个具有“目标”和“位置”字段的结构。位置只是图中的x,y,z位置。目标是另一种结构,我可以看到我的UserData结构。它还包含该图集中每个数据点的x,y和z值的数组。我现在需要的是datatip引用的数据点的索引。然后我想我可以用我的UserData完成剩下的工作。

1 个答案:

答案 0 :(得分:0)

datatip回调函数有两个参数: obj event_obj

如问题中所述,event_obj结构包含Target字段,该字段是包含用户可定义 UserData 的结构。显然,任何用户数据都可以添加到此结构中。在我的例子中,我添加了我可能需要的所有数组,这些数组的值对应于datatip游标指向的绘图对象中绘制的每个点。

在检查了另一个参数obj之后,我看到它包含了 Cursor 对象。 Cursor结构中的一个字段是 DataIndex 。这显然是用于绘制X和Y值的数组的索引(如果它是3D绘图则为Z值)。

因此,通过这些信息,我能够从原始绘图句柄附加到对象的其他矢量中获取任何其他相应的值。该对象只是 event_obj.Target

现在,我已经完整地详细说明了数据提示,其中包含我可能希望为数据提示所引用的绘制项目显示的任何其他相应值。