ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

グラフ プロット データ カーソルに対するノード プロパティの追加

この例では、GraphPlot データ カーソルをカスタマイズして、グラフの追加ノード プロパティを表示する方法を説明します。

GraphPlot オブジェクトの作成

ランダムな有向グラフの GraphPlot グラフィックス オブジェクトを作成します。グラフに wifi ノード プロパティを 1 つ追加します。

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

データ カーソル モードの有効化

データ カーソル モードを有効にするには、[ツール] メニューの [データ カーソル] アイテムを選択します。

データ カーソル モードを有効にした場合、グラフ内のノードをクリックすると、カーソル表示がオンになります。データ カーソルを使用すると、グラフ プロット内でノードを選択して、そのノードのプロパティを表示できます。既定では、無向グラフのデータ カーソルにはそのノードの ID 番号と次数が表示されます。有向グラフの場合、表示にはノードの ID 番号、入次数および出次数が含まれます。

wifi などの追加ノード プロパティを表示するには、データ カーソルのコールバック関数を変更する必要があります。データ カーソルの使用やカスタマイズの一般情報については、プロット データの対話型の確認を参照してください。

データ カーソルで表示されるテキストのカスタマイズ

データ カーソルで表示されるテキストをカスタマイズするには、新しいデータ カーソル コールバック関数を記述します。

1. 次の関数 GraphCursorCallback.m を現在のディレクトリに保存します。

function output_txt = GraphCursorCallback(obj,event_obj,NodeProperties)
% Display the position of the data cursor
% obj          Currently not used (empty)
% event_obj    Handle to event object
% output_txt   Data cursor text (character vector or cell array of character vectors).

h = get(event_obj,'Target');
pos = get(event_obj,'Position');
ind = find(h.XData == pos(1) & h.YData == pos(2), 1);

output_txt = {['Node ' num2str(ind)], ...
    ['Wifi: ' num2str(NodeProperties.wifi(ind))]};

標準のデータ カーソル コールバック関数では 2 つの入力引数を受け入れます。GraphCursorCallback では、データ カーソルがグラフ内の wifi などの追加ノード プロパティにアクセスできるように、追加入力引数 NodeProperties を受け入れます。

2. データ カーソル マネージャー オブジェクトの UpdateFcn プロパティを変更して、関数 GraphCursorCallback をデータ カーソルに接続します。このコマンドでは無名関数を使用して、GraphCursorCallback に対する 3 番目の入力として G.Nodes table を渡します。この手法では G.Nodes table スナップショットのみを取得するため、このグラフ プロパティが以後変更された場合は、UpdateFcn プロパティも再度変更する必要があります。

  hdt = datacursormode;
  hdt.UpdateFcn = @(obj,event_obj) GraphCursorCallback(obj,event_obj,G.Nodes);

3. これで GraphCursorCallback がデータ カーソルに接続されたため、プロット内の古いデータ ヒントをすべて削除してから、データ カーソル モードを再度有効にし、ノードを 1 つ選択します。データ カーソルの新しい表示には、GraphCursorCallback で定義されている wifi ノード プロパティが含まれます。

参考

| |

関連するトピック