Постройте вершины графика и ребра
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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.