Печать узлов и ребер графика
plot(___, использует дополнительные параметры, заданные одним или несколькими аргументами пары Name-Value, используя любую из комбинаций входных аргументов в предыдущих синтаксисах. Например, Name,Value)plot(G,'Layout','circle') строит график кругового кольца графика, и plot(G,'XData',X,'YData',Y,'ZData',Z) задает (X,Y,Z) координаты узлов графика.
plot( строит графики в осях, указанных ax,___)ax вместо в текущие оси (gca). Опция, ax, может предшествовать любой из комбинаций входных аргументов в предыдущих синтаксисах.
Создайте график, используя разреженную матрицу смежности, а затем постройте график.
n = 10; A = delsq(numgrid('L',n+2)); G = graph(A,'omitselfloops')
G =
graph with properties:
Edges: [130x2 table]
Nodes: [75x0 table]
plot(G)

Создайте и постройте график. Укажите LineSpec для изменения Marker, NodeColorи/или LineStyle графика.
G = graph(bucky); plot(G,'-.dr','NodeLabel',{})

Создайте направленный график, а затем постройте график с помощью 'force' макет.
G = digraph(1,2:5); G = addedge(G,2,6:15); G = addedge(G,15,16:20)
G =
digraph with properties:
Edges: [19x1 table]
Nodes: [20x0 table]
plot(G,'Layout','force')

Создайте взвешенный график.
s = [1 1 1 1 1 2 2 7 7 9 3 3 1 4 10 8 4 5 6 8]; t = [2 3 4 5 7 6 7 5 9 6 6 10 10 10 11 11 8 8 11 9]; weights = [1 1 1 1 3 3 2 4 1 6 2 8 8 9 3 2 10 12 15 16]; G = graph(s,t,weights)
G =
graph with properties:
Edges: [20x2 table]
Nodes: [11x0 table]
Постройте график с использованием пользовательских координат узлов. Координаты X задаются с помощью XData, координаты y задаются с помощью YDataи координаты z задаются с помощью ZData. Использовать EdgeLabel маркировка кромок с использованием весов кромок.
x = [0 0.5 -0.5 -0.5 0.5 0 1.5 0 2 -1.5 -2]; y = [0 0.5 0.5 -0.5 -0.5 2 0 -2 0 0 0]; z = [5 3 3 3 3 0 1 0 0 1 0]; plot(G,'XData',x,'YData',y,'ZData',z,'EdgeLabel',G.Edges.Weight)

Просмотрите график сверху.
view(2)

Создайте взвешенный график.
s = [1 1 1 1 2 2 3 4 4 5 6]; t = [2 3 4 5 3 6 6 5 7 7 7]; weights = [50 10 20 80 90 90 30 20 100 40 60]; G = graph(s,t,weights)
G =
graph with properties:
Edges: [11x2 table]
Nodes: [7x0 table]
Постройте график, обозначив ребра своими весами и сделав ширину ребер пропорциональной их весам. Используйте масштабированную версию весов кромок, чтобы определить ширину каждой кромки, так что самая широкая линия имеет ширину 5.
LWidths = 5*G.Edges.Weight/max(G.Edges.Weight); plot(G,'EdgeLabel',G.Edges.Weight,'LineWidth',LWidths)

Создайте направленный график. Постройте график с пользовательскими метками для узлов и кромок.
s = [1 1 1 2 2 3 3 4 4 5 6 7]; t = [2 3 4 5 6 5 7 6 7 8 8 8]; G = digraph(s,t)
G =
digraph with properties:
Edges: [12x1 table]
Nodes: [8x0 table]
eLabels = {'x' 'y' 'z' 'y' 'z' 'x' 'z' 'x' 'y' 'z' 'y' 'x'};
nLabels = {'{0}','{x}','{y}','{z}','{x,y}','{x,z}','{y,z}','{x,y,z}'};
plot(G,'Layout','force','EdgeLabel',eLabels,'NodeLabel',nLabels)
Создание и печать направленного графика. Укажите выходной аргумент для plot для возврата дескриптора к GraphPlot объект.
s = [1 1 1 2 2 3 3 4 5 5 6 7 7 8 8 9 10 11]; t = [2 3 10 4 12 4 5 6 6 7 9 8 10 9 11 12 11 12]; G = digraph(s,t)
G =
digraph with properties:
Edges: [18x1 table]
Nodes: [12x0 table]
p = plot(G)

p =
GraphPlot with properties:
NodeColor: [0 0.4470 0.7410]
MarkerSize: 4
Marker: 'o'
EdgeColor: [0 0.4470 0.7410]
LineWidth: 0.5000
LineStyle: '-'
NodeLabel: {1x12 cell}
EdgeLabel: {}
XData: [2.5000 1.5000 2.5000 2 3 2 3 3 2.5000 4 3.5000 2.5000]
YData: [7 6 6 5 5 4 4 3 2 3 2 1]
ZData: [0 0 0 0 0 0 0 0 0 0 0 0]
Show all properties
Изменение цвета и маркера узлов.
p.Marker = 's'; p.NodeColor = 'r';

Увеличьте размер узлов.
p.MarkerSize = 7;

Измените стиль линий ребер.
p.LineStyle = '--';
Измените координаты x и y узлов.
p.XData = [2 4 1.5 3.5 1 3 1 2.1 3 2 3.1 4]; p.YData = [3 3 3.5 3.5 4 4 2 2 2 1 1 1];

LineSpec - Стиль линии, обозначение маркера и цветСтиль линии, символ маркера и цвет, заданные как символьный вектор или строковый вектор символов. Символы могут отображаться в любом порядке, и можно опустить один или несколько признаков. Если опустить стиль линий, на графике будут показаны сплошные линии для кромок графика.
Пример: '--or' использует красные маркеры узлов окружности и красные пунктирные линии в качестве ребер.
Пример: 'r*' использует в качестве краев красные маркеры узлов звездочек и сплошные красные линии.
| Стиль линии | Описание |
|---|---|
- | Сплошная линия |
-- | Пунктирная линия |
: | Пунктирная линия |
-. | Черточно-точечная линия |
| Маркер | Описание |
|---|---|
'o' | Круг |
'+' | Знак «Плюс» |
'*' | Звездочка |
'.' | Пункт |
'x' | Крест |
'_' | Горизонтальная линия |
'|' | Вертикальная линия |
's' | Квадрат |
'd' | Алмаз |
'^' | Треугольник, направленный вверх |
'v' | Треугольник, направленный вниз |
'>' | Прямоугольный треугольник |
'<' | Треугольник, указывающий влево |
'p' | Пентаграмма |
'h' | Hexagram |
| Цвет | Описание |
|---|---|
| желтый |
| пурпурный |
| голубой |
| красный |
| зеленый |
| синий |
| белый |
| черный |
ax - Объект AxesОбъект Axes. Если объект axes не указан, то plot использует текущие оси (gca).
Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.
p = plot(G,'EdgeColor','r','NodeColor','k','LineStyle','--')Перечисленные здесь свойства графика являются только подмножеством. Полный список см. в разделе Свойства графика (Graph Plot Properties).
'ArrowSize' - Размер стрелкиПримечание
ArrowSize влияет только на отображение направленных графиков, созданных с помощью digraph.
Размер стрелки, указанный как разделенная запятыми пара, состоящая из 'ArrowSize' и положительное значение в единицах измерения точки. Значение по умолчанию ArrowSize является 7 для графиков со 100 или менее узлами, и 4 для графиков с более чем 100 узлами.
Пример: 15
'EdgeCData' - Цветовые данные краевых линийЦветовые данные линий кромок, указанные как разделенная запятыми пара, состоящая из 'EdgeCData' и вектор с длиной, равной числу рёбер в графе. Значения в EdgeCData отображается линейно к цветам в текущей карте цветов, что приводит к различным цветам для каждого ребра на графике.
'EdgeColor' - Краевой цвет[0 0.4470 0.7410] (по умолчанию) | триплет RGB | шестнадцатеричный цветовой код | имя цвета | матрица | 'flat' | 'none'Цвет кромки, заданный как разделенная запятыми пара, состоящая из 'EdgeColor' и одно из этих значений:
'none' - Кромки не нарисованы.
'flat' - Цвет каждого края зависит от значения EdgeCData.
matrix - каждая строка представляет собой триплет RGB, представляющий цвет одного ребра. Размер матрицы: numedges(G)около-3.
Триплет RGB, шестнадцатеричный код цвета или имя цвета - ребра используют указанный цвет.
Триплеты RGB и шестнадцатеричные цветовые коды полезны для задания пользовательских цветов.
Триплет RGB - это трехэлементный вектор строки, элементы которого задают интенсивности красной, зеленой и синей составляющих цвета. Интенсивности должны находиться в диапазоне [0,1]; например, [0.4 0.6 0.7].
Шестнадцатеричный цветовой код - это символьный вектор или строковый скаляр, начинающийся с хэш-символа (#), за которыми следуют три или шесть шестнадцатеричных цифр, которые могут варьироваться от 0 кому F. Значения не чувствительны к регистру. Таким образом, цветовые коды '#FF8800', '#ff8800', '#F80', и '#f80' эквивалентны.
Можно также задать некоторые общие цвета по имени. В этой таблице перечислены параметры именованного цвета, эквивалентные триплеты RGB и шестнадцатеричные цветовые коды.
| Имя цвета | Краткое имя | Триплет RGB | Шестнадцатеричный цветовой код | Внешность |
|---|---|---|---|---|
'red' | 'r' | [1 0 0] | '#FF0000' |
|
'green' | 'g' | [0 1 0] | '#00FF00' |
|
'blue' | 'b' | [0 0 1] | '#0000FF' |
|
'cyan' | 'c' | [0 1 1] | '#00FFFF' |
|
'magenta' | 'm' | [1 0 1] | '#FF00FF' |
|
'yellow' | 'y' | [1 1 0] | '#FFFF00' |
|
'black' | 'k' | [0 0 0] | '#000000' |
|
'white' | 'w' | [1 1 1] | '#FFFFFF' |
|
Вот триплеты RGB и шестнадцатеричные цветовые коды для цветов по умолчанию MATLAB ®, используемых на многих типах графиков.
| Триплет RGB | Шестнадцатеричный цветовой код | Внешность |
|---|---|---|
[0 0.4470 0.7410] | '#0072BD' |
|
[0.8500 0.3250 0.0980] | '#D95319' |
|
[0.9290 0.6940 0.1250] | '#EDB120' |
|
[0.4940 0.1840 0.5560] | '#7E2F8E' |
|
[0.4660 0.6740 0.1880] | '#77AC30' |
|
[0.3010 0.7450 0.9330] | '#4DBEEE' |
|
[0.6350 0.0780 0.1840] | '#A2142F' |
|
Пример: plot(G,'EdgeColor','r') создает график с красными ребрами.
'EdgeLabel' - Метки кромок{} (по умолчанию) | вектор | массив ячеек символьных векторов | строковый массивМетки кромок, заданные как разделенная запятыми пара, состоящая из 'EdgeLabel' и числовой вектор, массив ячеек символьных векторов или строковый массив. Длина EdgeLabel должно быть равно числу рёбер в графике. По умолчанию EdgeLabel является пустым массивом ячеек (метки границ не отображаются).
Пример: {'A', 'B', 'C'}
Пример: [1 2 3]
Пример: plot(G,'EdgeLabel',G.Edges.Weight) помечает ребра графика своими весами.
Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | cell | string
'Layout' - Метод компоновки графика'auto' (по умолчанию) | 'circle' | 'force' | 'layered' | 'subspace' | 'force3' | 'subspace3'Метод компоновки графика, заданный как разделенная запятыми пара, состоящая из 'Layout' и один из вариантов в таблице. В таблице также перечислены совместимые пары имя-значение для дальнейшего уточнения каждого метода компоновки. См. раздел layout для получения дополнительной информации об этих парах имя-значение для конкретного макета.
| Выбор | Описание | Специфичные для компоновки пары «имя-значение» |
|---|---|---|
'auto' (по умолчанию) |
Автоматический выбор метода компоновки на основе размера и структуры графика. |
— |
'circle' |
Круговая компоновка. Размещение узлов графика на окружности с центром в начале координат с радиусом 1. |
|
'force' |
Силовая компоновка [1]. Использует силы притяжения между соседними узлами и силы отталкивания между удаленными узлами. |
|
'layered' |
Многоуровневая компоновка узлов [2], [3], [4]. Помещает узлы графа в набор слоев, открывая иерархическую структуру. По умолчанию слои продвигаются вниз (стрелки направленного ациклического графика указывают вниз). |
|
'subspace' |
Компоновка узла встраивания подпространства [5]. Строит графики узлов графика в высокомерном вложенном подпространстве, а затем проецирует позиции обратно в 2-D. По умолчанию размер подпространства равен 100 или общему числу узлов, в зависимости от того, какое из них меньше. |
|
'force3' | 3-D силовая компоновка. |
|
'subspace3' | 3-D компоновку встраивания подпространства. |
|
Пример: plot(G,'Layout','force3','Iterations',10)
Пример: plot(G,'Layout','subspace','Dimension',50)
Пример: plot(G,'Layout','layered')
'LineStyle' - Стиль линии'-' (по умолчанию) | '--' | ':' | '-.' | 'none' | массив ячеек | строковый векторСтиль линии, заданный как разделенная запятыми пара, состоящая из 'LineStyle' и один из стилей линий, перечисленных в этой таблице, или как массив ячеек или строковый вектор таких значений. Укажите массив ячеек символьных векторов или строковых векторов для использования различных стилей линий для каждого края.
| Персонажи | Стиль линии | Результирующая линия |
|---|---|---|
'-' | Сплошная линия |
|
'--' | Пунктирная линия |
|
':' | Пунктирная линия |
|
'-.' | Пунктирная линия |
|
'none' | Без строки | Без строки |
'LineWidth' - Ширина линии кромки0.5 (по умолчанию) | положительное значение | векторШирина линии кромки, заданная как разделенная запятыми пара, состоящая из 'LineWidth' и положительное значение в точечных единицах или вектор таких значений. Укажите вектор для использования различной ширины линии для каждого ребра на графике.
Пример: 0.75
'Marker' - Обозначение маркера узла'o' (по умолчанию) | символьный вектор | массив ячеек | строковый векторСимвол обозначения узла, заданный как разделенная запятыми пара, состоящая из 'Marker' и один из векторов символов, перечисленных в этой таблице, или как массив ячеек или строковый вектор таких значений. По умолчанию для узлов графика используются круглые маркеры. Укажите массив ячеек символьных векторов или строковых векторов для использования различных маркеров для каждого узла.
| Стоимость | Описание |
|---|---|
'o' | Круг |
'+' | Знак «Плюс» |
'*' | Звездочка |
'.' | Пункт |
'x' | Крест |
'_' | Горизонтальная линия |
'|' | Вертикальная линия |
'square' или 's' | Квадрат |
'diamond' или 'd' | Алмаз |
'^' | Треугольник, направленный вверх |
'v' | Треугольник, направленный вниз |
'>' | Прямоугольный треугольник |
'<' | Треугольник, указывающий влево |
'pentagram' или 'p' | Пятиконечная звезда (пентаграмма) |
'hexagram' или 'h' | Шестиконечная звезда (гексаграмма) |
'none' | Без маркеров |
Пример: '+'
Пример: 'diamond'
'MarkerSize' - Размер маркера узлаРазмер маркера узла, указанный как разделенная запятыми пара, состоящая из 'MarkerSize' и положительное значение в точечных единицах или в виде вектора таких значений. Укажите вектор для использования различных размеров маркера для каждого узла на графике. Значение по умолчанию MarkerSize равно 4 для графов со 100 или менее узлами, и 2 для графиков с более чем 100 узлами.
Пример: 10
'NodeCData' - Цветовые данные маркеров узловЦветовые данные маркеров узлов, указанные как разделенная запятыми пара, состоящая из 'NodeCData' и вектор с длиной, равной числу узлов в графе. Значения в NodeCData отображается линейно к цветам в текущей карте цветов, что приводит к различным цветам для каждого узла на графике.
'NodeColor' - Цвет узла[0 0.4470 0.7410] (по умолчанию) | триплет RGB | шестнадцатеричный цветовой код | имя цвета | матрица | 'flat' | 'none'Цвет узла, заданный как разделенная запятыми пара, состоящая из 'NodeColor' и одно из этих значений:
'none' - Узлы не нарисованы.
'flat' - Цвет каждого узла зависит от значения NodeCData.
matrix - каждая строка представляет собой триплет RGB, представляющий цвет одного узла. Размер матрицы: numnodes(G)около-3.
RGB триплет, шестнадцатеричный код цвета или имя цвета - узлы используют указанный цвет.
Триплеты RGB и шестнадцатеричные цветовые коды полезны для задания пользовательских цветов.
Триплет RGB - это трехэлементный вектор строки, элементы которого задают интенсивности красной, зеленой и синей составляющих цвета. Интенсивности должны находиться в диапазоне [0,1]; например, [0.4 0.6 0.7].
Шестнадцатеричный цветовой код - это символьный вектор или строковый скаляр, начинающийся с хэш-символа (#), за которыми следуют три или шесть шестнадцатеричных цифр, которые могут варьироваться от 0 кому F. Значения не чувствительны к регистру. Таким образом, цветовые коды '#FF8800', '#ff8800', '#F80', и '#f80' эквивалентны.
Можно также задать некоторые общие цвета по имени. В этой таблице перечислены параметры именованного цвета, эквивалентные триплеты RGB и шестнадцатеричные цветовые коды.
| Имя цвета | Краткое имя | Триплет RGB | Шестнадцатеричный цветовой код | Внешность |
|---|---|---|---|---|
'red' | 'r' | [1 0 0] | '#FF0000' |
|
'green' | 'g' | [0 1 0] | '#00FF00' |
|
'blue' | 'b' | [0 0 1] | '#0000FF' |
|
'cyan' | 'c' | [0 1 1] | '#00FFFF' |
|
'magenta' | 'm' | [1 0 1] | '#FF00FF' |
|
'yellow' | 'y' | [1 1 0] | '#FFFF00' |
|
'black' | 'k' | [0 0 0] | '#000000' |
|
'white' | 'w' | [1 1 1] | '#FFFFFF' |
|
Вот триплеты RGB и шестнадцатеричные цветовые коды для цветов по умолчанию MATLAB, используемых на многих типах графиков.
| Триплет RGB | Шестнадцатеричный цветовой код | Внешность |
|---|---|---|
[0 0.4470 0.7410] | '#0072BD' |
|
[0.8500 0.3250 0.0980] | '#D95319' |
|
[0.9290 0.6940 0.1250] | '#EDB120' |
|
[0.4940 0.1840 0.5560] | '#7E2F8E' |
|
[0.4660 0.6740 0.1880] | '#77AC30' |
|
[0.3010 0.7450 0.9330] | '#4DBEEE' |
|
[0.6350 0.0780 0.1840] | '#A2142F' |
|
Пример: plot(G,'NodeColor','k') создает график с черными узлами.
'NodeLabel' - Метки узловМетки узлов, указанные как разделенная запятыми пара, состоящая из 'NodeLabel' и числовой вектор, массив ячеек символьных векторов или строковый массив. Длина NodeLabel должно быть равно количеству узлов в графике. По умолчанию NodeLabel - массив ячеек, содержащий идентификаторы узлов для узлов графика:
Для узлов без имен (то есть G.Nodes не содержит Name variable), метки узлов являются значениями unique(G.Edges.EndNodes) содержится в массиве ячеек.
Для именованных узлов метки узлов: G.Nodes.Name'.
Пример: {'A', 'B', 'C'}
Пример: [1 2 3]
Пример: plot(G,'NodeLabel',G.Nodes.Name) маркирует узлы своими именами.
Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | cell | string
'XData' - координата x узловПримечание
XData и YData необходимо указать вместе, чтобы каждый узел имел допустимую (x, y) координату. При необходимости можно также указатьZData для 3-D координат.
x-координата узлов, заданная как разделенная запятыми пара, состоящая из 'XData' и вектор с длиной, равной числу узлов в графе.
'YData' - координата y узловПримечание
XData и YData необходимо указать вместе, чтобы каждый узел имел допустимую (x, y) координату. При необходимости можно также указатьZData для 3-D координат.
координата y узлов, заданная как разделенная запятыми пара, состоящая из 'YData' и вектор с длиной, равной числу узлов в графе.
'ZData' - z-координата узловПримечание
XData и YData необходимо указать вместе, чтобы каждый узел имел допустимую (x, y) координату. При необходимости можно также указатьZData для 3-D координат.
z-координата узлов, заданная как разделенная запятыми пара, состоящая из 'ZData' и вектор с длиной, равной числу узлов в графе.
h - График графикаGraphPlot объектГрафик, возвращаемый как объект. Дополнительные сведения см. в разделе GraphPlot.
В R2018a изменилось поведение
Самокольцы на графике простого графа теперь имеют форму листа или слезотека. В предыдущих выпусках самокольцы отображались в виде кругов.
[1] Фрухтерман, Т. и Э. Рейнгольд. «Рисование графика с помощью принудительного размещения». Программное обеспечение - практика и опыт. т. 21 (11), 1991, с. 1129-1164.
[2] Ганснер, Э., Э. Коутсофиос, С. Норт и К.-П. Во. «Методика рисования направленных графиков». Транзакции IEEE по программному обеспечению. Vol.19, 1993, стр 214–230.
[3] Барт, В., М. Юэнджер и П. Мутцель. «Простой и эффективный двухслойный перекрестный подсчет». Журнал алгоритмов и приложений графов. Vol.8 (2), 2004, стр 179–194.
[4] Брандес, У. и Б. Коепф. «Быстрое и простое назначение горизонтальных координат». LNCS. Том 2265, 2002, стр. 31-44.
[5] Я. Корен. «Рисование графиков собственными векторами: теория и практика». Компьютеры и математика с приложениями. т. 49, 2005, с. 1867-1888.
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.