plot

Постройте вершины графика и ребра

Описание

пример

plot(G) строит узлы и ребра в графике G.

пример

plot(G,LineSpec) устанавливает стиль линии, символ маркера и цвет. Например, plot(G,'-or') использование красные круги для узлов и красные линии для ребер.

пример

plot(___,Name,Value) дополнительные опции использования, заданные одним или несколькими Аргументами пары "имя-значение" с помощью любой из комбинаций входных аргументов в предыдущих синтаксисах. Например, plot(G,'Layout','circle') строит круговое кольцевое размещение графика и plot(G,'XData',X,'YData',Y,'ZData',Z) задает (X,Y,Z) координаты вершин графика.

plot(ax,___) графики в осях заданы ax вместо в текущую систему координат (gca). Опция, ax, может предшествовать любой из комбинаций входных аргументов в предыдущих синтаксисах.

пример

h = plot(___) возвращает GraphPlot объект. Используйте этот объект смотреть и настроить свойства построенной диаграммы.

Примеры

свернуть все

Создайте график с помощью разреженной матрицы смежности, и затем постройте график.

n = 10;
A = delsq(numgrid('L',n+2));
G = graph(A,'omitselfloops')
G = 
  graph with properties:

    Edges: [130x2 table]
    Nodes: [75x0 table]

plot(G)

Figure contains an axes object. The axes object contains an object of type graphplot.

Создайте и постройте график. Задайте LineSpec введите, чтобы изменить Marker'NodeColor' , и/или LineStyle из графика графика.

G = graph(bucky);
plot(G,'-.dr','NodeLabel',{})

Figure contains an axes object. The axes object contains an object of type graphplot.

Создайте ориентированного графа, и затем постройте график с помощью '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')

Figure contains an axes object. The axes object contains an object of type graphplot.

Создайте взвешенный график.

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)

Figure contains an axes object. The axes object contains an object of type graphplot.

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

view(2)

Figure contains an axes object. The axes object contains an object of type graphplot.

Создайте взвешенный график.

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)

Figure contains an axes object. The axes object contains an object of type graphplot.

Создайте ориентированного графа. Постройте график с пользовательскими метками для узлов и ребер.

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)

Figure contains an axes object. The axes object contains an object of type graphplot.

Создайте и постройте ориентированного графа. Задайте выходной аргумент 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)

Figure contains an axes object. The axes object contains an object of type graphplot.

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';

Figure contains an axes object. The axes object contains an object of type graphplot.

Увеличьте размер узлов.

p.MarkerSize = 7;

Figure contains an axes object. The axes object contains an object of type graphplot.

Измените стиль линии ребер.

p.LineStyle = '--';

Figure contains an axes object. The axes object contains an object of type graphplot.

Измените координаты 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];

Figure contains an axes object. The axes object contains an object of type graphplot.

Входные параметры

свернуть все

Введите график в виде любого graph или digraph объект. Используйте graph создать неориентированного графа или digraph создать ориентированного графа.

Пример: G = graph(1,2)

Пример: G = digraph([1 2],[2 3])

Стиль линии, символ маркера и цвет в виде вектора символов или вектора строки из символов. Символы могут появиться в любом порядке, и можно не использовать один или несколько характеристик. Если вы не используете стиль линии, то график показывает сплошные линии для ребер графика.

Пример: '--or' использование красные круговые маркеры узла и красные пунктирные линии как ребра.

Пример: 'r*' использование красные маркеры узла звездочки и твердые красные линии как ребра.

Стиль линииОписаниеПолучившаяся линия
'-'Сплошная линия

Sample of solid line

'--'Пунктирная линия

Sample of dashed line

':'Пунктирная линия

Sample of dotted line

'-.'Штрих-пунктирная линия

Sample of dash-dotted line, with alternating dashes and dots

МаркерОписаниеПолучившийся маркер
'o'Круг

Sample of circle marker

'+'Знак «плюс»

Sample of plus sign marker

'*'Звездочка

Sample of asterisk marker

'.'Точка

Sample of point marker

'x'Крест

Sample of cross marker

'_'Горизонтальная линия

Sample of horizontal line marker

'|'Вертикальная линия

Sample of vertical line marker

's'Квадрат

Sample of square marker

'd'Ромб

Sample of diamond line marker

'^'Треугольник, направленный вверх

Sample of upward-pointing triangle marker

'v'Нисходящий треугольник

Sample of downward-pointing triangle marker

'>'Треугольник, указывающий вправо

Sample of right-pointing triangle marker

'<'Треугольник, указывающий влево

Sample of left-pointing triangle marker

'p'Пентаграмма

Sample of pentagram marker

'h'Гексаграмма

Sample of hexagram marker

Название цветаКраткое названиеТриплет RGBВнешний вид
'red''r'[1 0 0]

Sample of the color red

'green''g'[0 1 0]

Sample of the color green

'blue''b'[0 0 1]

Sample of the color blue

'cyan' 'c'[0 1 1]

Sample of the color cyan

'magenta''m'[1 0 1]

Sample of the color magenta

'yellow''y'[1 1 0]

Sample of the color yellow

'black''k'[0 0 0]

Sample of the color black

'white''w'[1 1 1]

Sample of the color white

Объект осей. Если вы не задаете объект осей, то plot использует текущую систему координат (gca).

Аргументы name-value

Задайте дополнительные разделенные запятой пары Name,Value аргументы. Name имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: p = plot(G,'EdgeColor','r','NodeColor','k','LineStyle','--')

Свойства графика, перечисленные здесь, являются только подмножеством. Для полного списка см. Свойства GraphPlot.

Примечание

ArrowSize только влияет на отображение ориентированных графов, созданных с помощью digraph.

Размер стрелы в виде разделенной запятой пары, состоящей из 'ArrowSize' и положительное значение в модулях точки. Значение по умолчанию ArrowSize 7 для графиков с 100 или меньшим количеством узлов и 4 для графиков больше чем с 100 узлами.

Пример: 15

Цветные данные линий ребра в виде разделенной запятой пары, состоящей из 'EdgeCData' и вектор с длиной равняется количеству ребер в графике. Значения в EdgeCData отобразитесь линейно в цветах в текущей палитре, приводящей к различным цветам для каждого ребра в построенной диаграмме.

Цвет обводки в виде разделенной запятой пары, состоящей из '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'

    Sample of the color red

    'green''g'[0 1 0]'#00FF00'

    Sample of the color green

    'blue''b'[0 0 1]'#0000FF'

    Sample of the color blue

    'cyan' 'c'[0 1 1]'#00FFFF'

    Sample of the color cyan

    'magenta''m'[1 0 1]'#FF00FF'

    Sample of the color magenta

    'yellow''y'[1 1 0]'#FFFF00'

    Sample of the color yellow

    'black''k'[0 0 0]'#000000'

    Sample of the color black

    'white''w'[1 1 1]'#FFFFFF'

    Sample of the color white

    Вот являются триплеты RGB и шестнадцатеричные цветовые коды для цветов по умолчанию MATLAB® использование во многих типах графиков.

    Триплет RGBШестнадцатеричный цветовой кодВнешний вид
    [0 0.4470 0.7410]'#0072BD'

    Sample of RGB triplet [0 0.4470 0.7410], which appears as dark blue

    [0.8500 0.3250 0.0980]'#D95319'

    Sample of RGB triplet [0.8500 0.3250 0.0980], which appears as dark orange

    [0.9290 0.6940 0.1250]'#EDB120'

    Sample of RGB triplet [0.9290 0.6940 0.1250], which appears as dark yellow

    [0.4940 0.1840 0.5560]'#7E2F8E'

    Sample of RGB triplet [0.4940 0.1840 0.5560], which appears as dark purple

    [0.4660 0.6740 0.1880]'#77AC30'

    Sample of RGB triplet [0.4660 0.6740 0.1880], which appears as medium green

    [0.3010 0.7450 0.9330]'#4DBEEE'

    Sample of RGB triplet [0.3010 0.7450 0.9330], which appears as light blue

    [0.6350 0.0780 0.1840]'#A2142F'

    Sample of RGB triplet [0.6350 0.0780 0.1840], which appears as dark red

Пример: plot(G,'EdgeColor','r') создает график графика с красными ребрами.

Ребро помечает в виде разделенной запятой пары, состоящей из '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' и одна из опций в таблице. Таблица также приводит совместимые пары "имя-значение", чтобы далее совершенствовать каждый метод макета. Смотрите layout страница с описанием для получения дополнительной информации об этих специфичных для размещения парах "имя-значение".

ОпцияОписаниеСпецифичные для размещения пары "имя-значение"
'auto' (значение по умолчанию)

Автоматический выбор метода макета на основе размера и структуры графика.

'circle'

Круговое размещение. Помещает вершины графика в круг, строивший в начале координат с радиусом 1.

'Center' — Центральный узел в круговом размещении

'force'

Направленное на силу размещение [1]. Использует привлекательные силы между смежными узлами и отталкивающие силы между удаленными узлами.

'Iterations' — Количество направленных на силу итераций размещения

'WeightEffect' — Воздействие веса ребра на размещении

'UseGravity' — Переключатель силы тяжести для размещений с несколькими компонентами

'XStart' — Запуск x - координирует для узлов

'YStart' — Запуск y - координирует для узлов

'layered'

Многоуровневое размещение узла [2], [3], [4]. Помещает вершины графика в набор слоев, показывая иерархическую структуру. По умолчанию слои прогрессируют вниз (стрелы направленной точки графа без петель вниз).

'Direction' — Направление слоев

'Sources' — Узлы, чтобы включать в первый слой

'Sinks' — Узлы, чтобы включать в последний слой

'AssignLayers' — Метод присвоения слоя

'subspace'

Подпространство, встраивающее размещение узла [5]. Строит вершины графика в высоко-размерном встроенном подпространстве, и затем проектирует положения назад в 2D. По умолчанию размерность подпространства или 100 или общее количество узлов, какой бы ни меньше.

'Dimension' — Размерность встроенного подпространства

'force3'3-D направленное на силу размещение.

'Iterations' — Количество направленных на силу итераций размещения

'WeightEffect' — Воздействие веса ребра на размещении

'UseGravity' — Переключатель силы тяжести для размещений с несколькими компонентами

'XStart' — Запуск x - координирует для узлов

'YStart' — Запуск y - координирует для узлов

'ZStart' — Запуск z - координирует для узлов

'subspace3'3-D размещение встраивания подпространства.

'Dimension' — Размерность встроенного подпространства

Пример: plot(G,'Layout','force3','Iterations',10)

Пример: plot(G,'Layout','subspace','Dimension',50)

Пример: plot(G,'Layout','layered')

Стиль линии в виде разделенной запятой пары, состоящей из 'LineStyle' и один из стилей линии, перечисленных в этой таблице, или как массив ячеек или вектор строки из таких значений. Задайте массив ячеек из символьных векторов или вектор строки, чтобы использовать различные стили линии для каждого ребра.

'characters'Стиль линииПолучившаяся линия
'-'Сплошная линия

'--'Пунктирная линия

':'Пунктирная линия

'-.'Штрих-пунктирная линия

'none'Никакая линияНикакая линия

Ширина линии ребра в виде разделенной запятой пары, состоящей из 'LineWidth' и положительное значение в модулях точки или векторе из таких значений. Задайте вектор, чтобы использовать различную ширину линии для каждого ребра в графике.

Пример: 0.75

Символ маркера узла в виде разделенной запятой пары, состоящей из 'Marker' и один из векторов символов, перечисленных в этой таблице, или как массив ячеек или вектор строки из таких значений. Значение по умолчанию должно использовать круговые маркеры для вершин графика. Задайте массив ячеек из символьных векторов или вектор строки, чтобы использовать различные маркеры для каждого узла.

МаркерОписаниеПолучившийся маркер
'o'Круг

Sample of circle marker

'+'Знак «плюс»

Sample of plus sign marker

'*'Звездочка

Sample of asterisk marker

'.'Точка

Sample of point marker

'x'Крест

Sample of cross marker

'_'Горизонтальная линия

Sample of horizontal line marker

'|'Вертикальная линия

Sample of vertical line marker

's'Квадрат

Sample of square marker

'd'Ромб

Sample of diamond line marker

'^'Треугольник, направленный вверх

Sample of upward-pointing triangle marker

'v'Нисходящий треугольник

Sample of downward-pointing triangle marker

'>'Треугольник, указывающий вправо

Sample of right-pointing triangle marker

'<'Треугольник, указывающий влево

Sample of left-pointing triangle marker

'p'Пентаграмма

Sample of pentagram marker

'h'Гексаграмма

Sample of hexagram marker

'none'Никакие маркерыНе применяется

Пример: '+'

Пример: 'diamond'

Размер маркера узла в виде разделенной запятой пары, состоящей из 'MarkerSize' и положительное значение в модулях точки или как вектор из таких значений. Задайте вектор, чтобы использовать различные размеры маркера для каждого узла в графике. Значение по умолчанию MarkerSize 4 для графиков с 100 или меньшим количеством узлов и 2 для графиков больше чем с 100 узлами.

Пример: 10

Цветные данные маркеров узла в виде разделенной запятой пары, состоящей из 'NodeCData' и вектор с длиной равняется количеству узлов в графике. Значения в NodeCData отобразитесь линейно в цветах в текущей палитре, приводящей к различным цветам для каждого узла в построенной диаграмме.

Цвет узла в виде разделенной запятой пары, состоящей из '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'

    Sample of the color red

    'green''g'[0 1 0]'#00FF00'

    Sample of the color green

    'blue''b'[0 0 1]'#0000FF'

    Sample of the color blue

    'cyan' 'c'[0 1 1]'#00FFFF'

    Sample of the color cyan

    'magenta''m'[1 0 1]'#FF00FF'

    Sample of the color magenta

    'yellow''y'[1 1 0]'#FFFF00'

    Sample of the color yellow

    'black''k'[0 0 0]'#000000'

    Sample of the color black

    'white''w'[1 1 1]'#FFFFFF'

    Sample of the color white

    Вот являются триплеты RGB и шестнадцатеричные цветовые коды для цветов по умолчанию использованием MATLAB во многих типах графиков.

    Триплет RGBШестнадцатеричный цветовой кодВнешний вид
    [0 0.4470 0.7410]'#0072BD'

    Sample of RGB triplet [0 0.4470 0.7410], which appears as dark blue

    [0.8500 0.3250 0.0980]'#D95319'

    Sample of RGB triplet [0.8500 0.3250 0.0980], which appears as dark orange

    [0.9290 0.6940 0.1250]'#EDB120'

    Sample of RGB triplet [0.9290 0.6940 0.1250], which appears as dark yellow

    [0.4940 0.1840 0.5560]'#7E2F8E'

    Sample of RGB triplet [0.4940 0.1840 0.5560], which appears as dark purple

    [0.4660 0.6740 0.1880]'#77AC30'

    Sample of RGB triplet [0.4660 0.6740 0.1880], which appears as medium green

    [0.3010 0.7450 0.9330]'#4DBEEE'

    Sample of RGB triplet [0.3010 0.7450 0.9330], which appears as light blue

    [0.6350 0.0780 0.1840]'#A2142F'

    Sample of RGB triplet [0.6350 0.0780 0.1840], which appears as dark red

Пример: plot(G,'NodeColor','k') создает график графика с узлами с неизвестным потоком.

Узел помечает в виде разделенной запятой пары, состоящей из '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 и YData должен быть задан вместе так, чтобы каждый узел имел допустимое (x, y) координата. Опционально, можно также задать ZData для 3-D координат.

x-координата узлов в виде разделенной запятой пары, состоящей из 'XData' и вектор с длиной равняется количеству узлов в графике.

Примечание

XData и YData должен быть задан вместе так, чтобы каждый узел имел допустимое (x, y) координата. Опционально, можно также задать ZData для 3-D координат.

y-координата узлов в виде разделенной запятой пары, состоящей из 'YData' и вектор с длиной равняется количеству узлов в графике.

Примечание

XData и YData должен быть задан вместе так, чтобы каждый узел имел допустимое (x, y) координата. Опционально, можно также задать ZData для 3-D координат.

z-координата узлов в виде разделенной запятой пары, состоящей из 'ZData' и вектор с длиной равняется количеству узлов в графике.

Выходные аргументы

свернуть все

График графика, возвращенный как объект. Для получения дополнительной информации смотрите 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.

Введенный в R2015b