Постройте вершины графика и ребра
plot(___, дополнительные опции использования, заданные одним или несколькими Аргументами пары "имя-значение" с помощью любой из комбинаций входных аргументов в предыдущих синтаксисах. Например, 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 | Гексаграмма |
| Символ | Цвет |
|---|---|
|
| желтый |
|
| пурпурный |
|
| голубой |
|
| красный |
|
| зеленый |
|
| синий |
|
| белый |
|
| черный |
ax Объект осейОбъект осей. Если вы не задаете объект осей, то plot использует текущую систему координат (gca).
Задайте дополнительные разделенные запятой пары Name,Value аргументы. Name имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.
p = plot(G,'EdgeColor','r','NodeColor','k','LineStyle','--')Свойства графика, перечисленные здесь, являются только подмножеством. Для полного списка см. Свойства GraphPlot.
'ArrowSize' ArrowSize ArrowSize только влияет на отображение ориентированных графов, созданных с помощью digraph.
Размер стрелы в виде разделенной запятой пары, состоящей из 'ArrowSize' и положительное значение в модулях точки. Значение по умолчанию ArrowSize 7 для графиков с 100 или меньшим количеством узлов и 4 для графиков больше чем с 100 узлами.
Пример: 15
'EdgeCData' — Цветные данные линий ребраЦветные данные линий ребра в виде разделенной запятой пары, состоящей из 'EdgeCData' и вектор с длиной равняется количеству ребер в графике. Значения в EdgeCData отобразитесь линейно в цветах в текущей палитре, приводящей к различным цветам для каждого ребра в построенной диаграмме.
'EdgeColor' 'EdgeColor' (значение по умолчанию) | триплет RGB | шестнадцатеричный цветовой код | название цвета | матрица | 'flat' | 'none'Цвет обводки в виде разделенной запятой пары, состоящей из 'EdgeColor' и одно из этих значений:
'none' — Ребра не чертятся.
'flat' — Цвет каждого ребра зависит от значения EdgeCData.
матрица — Каждой строкой является триплет 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]. Строит вершины графика в высоко-размерном встроенном подпространстве, и затем проектирует положения назад в 2D. По умолчанию размерность подпространства или 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' и один из стилей линии, перечисленных в этой таблице, или как массив ячеек или вектор строки таких значений. Задайте массив ячеек из символьных векторов или вектор строки, чтобы использовать различные стили линии в каждом ребре.
| 'characters' | Стиль линии | Получившаяся линия |
|---|---|---|
'-' | Сплошная линия |
|
'--' | Пунктирная линия |
|
':' | Пунктирная линия |
|
'-.' | Штрих-пунктирная линия |
|
'none' | Никакая линия | Никакая линия |
'LineWidth' — Ширина линии ребра (значение по умолчанию) | положительное значение | векторШирина линии ребра в виде разделенной запятой пары, состоящей из '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' 'NodeColor' (значение по умолчанию) | триплет RGB | шестнадцатеричный цветовой код | название цвета | матрица | 'flat' | 'none'Цвет узла в виде разделенной запятой пары, состоящей из 'NodeColor' и одно из этих значений:
'none' — Узлы не чертятся.
'flat' — Цвет каждого узла зависит от значения NodeCData.
матрица — Каждой строкой является триплет 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 переменная), метки узла являются значениями 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 GraphPlotGraphPlot объектГрафик графика, возвращенный как объект. Для получения дополнительной информации смотрите GraphPlot.
Поведение изменяется в R2018a
Самоциклы в графике простого графика теперь формируются как лист или слезинка. В предыдущих релизах самоциклы были отображены как круги.
[1] Фрачтермен, T. и Э. Рейнголд. “Рисунок графика Направленным на силу Размещением”. Программное обеспечение — Practice & Experience. Издание 21 (11), 1991, стр 1129–1164.
[2] Gansner, E., Э. Коутсофайос, S. Север и K.-P Vo. “Метод для Рисования Ориентированных графов”. Транзакции IEEE на Разработке программного обеспечения. Vol.19, 1993, стр 214–230.
[3] Барт, W., М. Джуенджер и П. Муцель. “Простой и Эффективный Перекрестный подсчет Двойного слоя”. Журнал Алгоритмов Графика и Приложений. Vol.8 (2), 2004, стр 179–194.
[4] Brandes, U. и Б. Коепф. “Быстрое и Простое Присвоение Горизонтальной координаты”. LNCS. Издание 2265, 2002, стр 31–44.
[5] И. Корен. “Чертя Графики Собственными векторами: Теория и Практика”. Компьютеры и Математика с Приложениями. Издание 49, 2005, стр 1867–1888.
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.