Добавление свойства узла в Data Cursor графика

В этом примере показано, как настроить GraphPlot Data Cursor, чтобы отобразить дополнительные свойства узла графика.

Создайте GraphPlot объект

Создайте GraphPlot графический объект для случайного ориентированного графа. Добавьте дополнительное свойство wifi узла к графику.

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

Включение режима Data Cursor

Включите режим Data Cursor путем выбора элемента Data Cursor в меню Tools.

С включенным режимом Data Cursor кликните по узлу в графике, чтобы поднять отображение курсора. Data Cursor позволяет вам выбирать узлы в графике графика и свойствах представления узлов. По умолчанию Data Cursor для неориентированного графа отображает номер идентификатора узла и степень. Для ориентированных графов отображение включает номер идентификатора узла, в степени, и-степень.

Отобразить дополнительные свойства узла, такие как wifi, функция обратного вызова Data Cursor должна быть изменена. Для получения общей информации об использовании и Data Cursor настройки, смотрите, В интерактивном режиме Исследуют Отображенные на графике Данные.

Настройка текста, отображенного Data Cursor

Настройте текст, отображенный по условию курсор путем записи новой функции обратного вызова Data Cursor.

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))]};

Стандартная функция обратного вызова Data Cursor принимает два входных параметра. GraphCursorCallback принимает дополнительный входной параметр, NodeProperties, так, чтобы Data Cursor получил доступ к дополнительным свойствам узла в графике, таким как wifi.

2. Соедините GraphCursorCallback функционируйте к Data Cursor путем изменения UpdateFcn свойство менеджера по Data Cursor объект. Эта команда использует анонимную функцию, чтобы передать G.Nodes таблица как третий вход к GraphCursorCallback. Этот метод только берет снимок состояния G.Nodes таблица, поэтому если свойства графика впоследствии изменяются, то необходимо изменить UpdateFcn свойство снова.

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

3. Теперь, когда GraphCursorCallback соединяется с Data Cursor, удалите любые старые всплывающие подсказки в графике, затем повторно включите режим Data Cursor и выберите узел. Новое отображение Data Cursor включает wifi свойство узла, как задано в GraphCursorCallback.

Смотрите также

| |

Похожие темы