我有一些这样的观点:

matrix = rand(6, 4)
0.8147    0.2785    0.9572    0.7922
0.9058    0.5469    0.4854    0.9595
0.1270    0.9575    0.8003    0.6557
0.9134    0.9649    0.1419    0.0357
0.6324    0.1576    0.4218    0.8491
0.0975    0.9706    0.9157    0.9340

前两列是 x 和 y 值,它们通过绘制为点
plot(matrix(:, 1), matrix(:, 2), '*r'
现在我想解决以下问题:
每当我单击图中的某个点时,我希望第 3 列和第 4 列中的信息显示为框中该点右侧的文本,例如带有一些文字,例如information 1: VALUE_COL3, information 2: VALUE_COL4。如何实现呢?我想到了 ButtonDownFcn 属性,然后检查点击的点并匹配它。但是有没有更简单的方法呢?

谢谢!

最佳答案

MATLAB 图形具有称为数据游标的功能。在工具栏上,有一个看起来像蓝色曲线的按钮,上面有一个十字准线和一个小工具提示。如果您单击它,然后选择您绘制的点之一,您将在该点上方看到一个小工具提示,提供有关该点的一些信息。您可以双击工具提示将其捡起,然后将其拖到其他绘制点上。

默认情况下,工具提示显示有关点的简单信息,即它们的 X 和 Y 坐标。但是您可以通过获取用于绘图的图形的 datacursormode 对象的句柄并设置其 UpdateFcn 来自定义显示的文本。执行 UpdateFcn 回调以确定工具提示上显示的文本 - 在您的情况下,它可以从矩阵的第三列和第四列获取相应的值,将它们与字符串“信息”拼接在一起,然后返回以进行显示。

请参阅文档中的 this 示例以了解如何更详细地完成此操作。

10-07 16:33
查看更多