Main Content

将节点属性添加到图论图数据提示

此示例说明如何自定义 GraphPlot 数据提示以显示图的额外节点属性。

绘制具有数据提示的 GraphPlot 对象

创建随机有向图的 GraphPlot 图对象。将额外的节点属性 wifi 添加到该图。

rng default
G = digraph(sprandn(20, 20, 0.05));
G.Nodes.wifi = randi([0 1], 20, 1) == 1;
h = plot(G);

Figure contains an axes object. The axes object contains an object of type graphplot.

向图中添加数据提示。利用数据提示,您能够选择图论图中的节点并查看节点的属性。

dt = datatip(h,4,3);

Figure contains an axes object. The axes object contains an object of type graphplot.

默认情况下,无向图的数据提示会显示节点编号和度。对于有向图,显示内容包括节点编号、入度和出度。

自定义数据提示中的现有数据

通过在适当的对象属性中添加、编辑或删除数据行,可以自定义图形对象的数据提示显示。对于此 GraphPlot 对象:

  • GraphPlot 对象句柄是 h

  • h.DataTipTemplate 属性包含控制数据提示显示的对象。

  • h.DataTipTemplate.DataTipRows 属性将数据提示的数据保留为 DataTipTextRow 对象。

  • 每个 DataTipTextRow 对象都有 LabelValue 属性。您可以通过修改这些属性来调整在数据提示中显示的标签或数据。

更改数据提示中节点行的标签,使其显示为“City”。

h.DataTipTemplate.DataTipRows(1).Label = "City";

Figure contains an axes object. The axes object contains an object of type graphplot.

数据提示现在显示城市编号。

将数据添加到数据提示

dataTipTextRow 函数创建一个可插入 DataTipRows 属性中的新数据行对象。使用 dataTipTextRow 为具有“WiFi”标签的数据提示创建一个新数据行,该数据提示引用图的 G.Nodes.wifi 属性中的值。将此数据提示行作为最后一行添加到 DataTipRows 属性中。

row = dataTipTextRow('WiFi',G.Nodes.wifi);
h.DataTipTemplate.DataTipRows(end+1) = row;

Figure contains an axes object. The axes object contains an object of type graphplot.

数据提示显示现在包含每个节点的 Wi-Fi® 值。

从数据提示中删除数据

要从数据提示中删除数据行,可以对 DataTipRows 属性进行索引,并对这些行分配空矩阵 []。这与从矩阵中删除行或列所用的方法可能相同。

从数据提示中删除入度和出度行。由于这些行在数据提示显示中显示为第二行和第三行,因此它们对应于 DataTipRows 属性的第二行和第三行。

h.DataTipTemplate.DataTipRows(2:3) = [];

Figure contains an axes object. The axes object contains an object of type graphplot.

数据提示显示现在只显示城市编号和 Wi-Fi 状态。

另请参阅

| | |

相关主题