我有一些这样的观点:
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 示例以了解如何更详细地完成此操作。