sankey
matplotlib.sankey
Модуль для создания диаграмм Санки с помощью matplotlib
-
class matplotlib.sankey.Sankey(ax=None, scale=1.0, unit='', format='%G', gap=0.25, radius=0.1, shoulder=0.03, offset=0.15, head_angle=100, margin=0.4, tolerance=1e-06, **kwargs) -
Базы:
objectДиаграмма Санки в matplotlib
Диаграммы Санки — это особый тип диаграммы потоков, в которой ширина стрелок отображается пропорционально величине потока. Обычно они используются для визуализации передачи энергии, материалов или затрат между процессами. Wikipedia (6/1/2011)Создаёт новый экземпляр Sankey.
Дополнительные ключевые аргументы:
Поле Описание ax оси, на которых должны быть нанесены данные. Если ax не указано, будут созданы новые оси. scale коэффициент масштабирования для потоков. scale изменяет ширину путей, чтобы сохранить правильную компоновку. Один и тот же масштаб применяется ко всем поддиаграммам. Значение должно быть выбрано таким образом, чтобы произведение масштаба и суммы входов приближалось к 1,0 (а произведение масштаба и суммы выходов приближалось к -1,0). unit строка, представляющая физическую единицу, связанную с величинами потока. Если unit равно None, то ни одна из величин не подписывается. format строка форматирования Python чисел, которая будет использоваться при подписи потока как величины (т.е., число, умноженное на единицу, где единица задана) gap пробел между путями, которые прерываются/отходят от верхней или нижней части radius внутренний радиус вертикальных путей shoulder размер плеч выходной стрелки offset смещение текста (от впадины или наконечника стрелки) head_angle угол головки стрелки (и отрицательный угол хвоста) [град.] margin минимальное пространство между контурами Санки и краем области графика tolerance допустимый максимум величины суммы потоков. Величина суммы соединённых потоков не может быть больше tolerance. Перечисленные выше необязательные аргументы применяются ко всем поддиаграммам, чтобы обеспечить согласованное выравнивание и форматирование.
Если
Sankeyинициализируется любыми ключевыми аргументами, кроме явно указанных выше (**kwargs), они будут переданы вadd(), что создаст первую поддиаграмму.Для построения сложной диаграммы Санки, создайте экземпляр
Sankey, вызвав его без каких-либо аргументов:sankey = Sankey()
Затем добавьте простые поддиаграммы Санки:
sankey.add() # 1 sankey.add() # 2 #... sankey.add() # n
Наконец, создайте полную диаграмму:
sankey.finish()
Или, вместо этого, просто последовательно вызывайте эти функции:
Sankey().add().add... .add().finish()
Примеры:
-
add(patchlabel='', flows=None, orientations=None, labels='', trunklength=1.0, pathlengths=0.25, prior=None, connect=(0, 0), rotation=0, **kwargs) -
Добавить простую диаграмму Санки со потоками на одном иерархическом уровне.
Возвращаемое значение — экземпляр
Sankey.Допустимые ключевые аргументы:
Ключевое слово Описание patchlabel метка, размещаемая в центре диаграммы Примечание: label (а не patchlabel) будет передано в patch через **kwargsи может использоваться для создания записи в легенде.flows массив значений потоков По соглашению, входные значения положительные, а выходные — отрицательные. orientations список ориентаций путей Допустимые значения — 1 (сверху/вниз), 0 (слева/справа) или -1 (снизу/вверх). Если orientations == 0, входные значения будут входить слева, а выходные — выходить справа. labels список спецификаций меток для потоков Каждое значение может быть None (без меток), ‘’ (только метки величин) или строка метки. Если предоставлено одно значение, оно будет применено ко всем потокам. Если запись — непустая строка, то величина соответствующего потока будет отображена под строкой. Однако, если unit основной диаграммы равно None, величины никогда не отображаются, независимо от значения этого аргумента. trunklength длина между основаниями входных и выходных групп pathlengths список длин стрелок перед входом или после выхода Если задано одно значение, оно будет применено к первым (внутренним) путям сверху и снизу, а длина остальных стрелок будет выровнена соответственно. pathlengths не применяется к горизонтальным входным и выходным значениям. prior индекс предыдущей диаграммы, к которой должна быть подключена данная диаграмма connect кортеж (prior, this), индексирующий поток предыдущей диаграммы и поток этой диаграммы, которые должны быть соединены Если это первая диаграмма или prior равно None, connect игнорируется. rotation угол поворота диаграммы [град] rotation игнорируется, если эта диаграмма подключена к существующей (используя prior и connect). Интерпретация аргумента orientations будет вращаться соответственно (например, если rotation == 90, запись orientations равна 1 означает слева/справа). Допустимые kwargs — аргументы
matplotlib.patches.PathPatch():Свойство Описание agg_filterнеизвестно alphafloat или None animated[True | False] antialiasedили aa[True | False] или None по умолчанию axesэкземпляр Axescapstyle[‘butt’ | ‘round’ | ‘projecting’] clip_boxэкземпляр matplotlib.transforms.Bboxclip_on[True | False] clip_path[ ( Path,Transform) |Patch| None ]colorспецификация цвета matplotlib containsфункция-обработчик edgecolorили ecспецификация цвета mpl, или None по умолчанию, или ‘none’ для отсутствия цвета facecolorили fcспецификация цвета mpl, или None по умолчанию, или ‘none’ для отсутствия цвета figureэкземпляр matplotlib.figure.Figurefill[True | False] gidстрока идентификатора hatch[‘/’ | ‘\’ | ‘|’ | ‘-‘ | ‘+’ | ‘x’ | ‘o’ | ‘O’ | ‘.’ | ‘*’] joinstyle[‘miter’ | ‘round’ | ‘bevel’] labelстрока или любой печатаемый объект с преобразованием ‘%s’. linestyleили ls[‘solid’ | ‘dashed’, ‘dashdot’, ‘dotted’ | (смещение, последовательность чередования) | '-'|'--'|'-.'|':'|'None'|' '|'']linewidthили lwчисло с плавающей точкой или None по умолчанию path_effectsнеизвестно picker[None|число с плавающей точкой|булево значение|функция-обработчик] rasterized[True | False | None] sketch_paramsнеизвестно snapнеизвестно transformэкземпляр Transformurlстрока url visible[True | False] zorderлюбое число В качестве примеров,
fill=Falseиlabel='A legend entry'. По умолчанию,facecolor='#bfd1d4'(светло-синий) иlinewidth=0.5.Индексы параметров (prior и connect) основаны на нуле.
-
Потоки размещаются вдоль верхней части диаграммы, начиная с внутренней части и по порядку их индексов в списке или массиве flows. Они располагаются вдоль сторон диаграммы сверху вниз и по нижней части — снаружи вовнутрь.
Если сумма входных и выходных значений не равна нулю, разница будет отображена как кубическая кривая Безье вдоль верхних и нижних границ ствола.
См. также
-
finish() -
Настроить оси и вернуть список информации о поддиаграмме(ах) Санки.
Возвращаемое значение — список поддиаграмм, представленных следующими полями:
Поле Описание patch Контур Санки (экземпляр PathPatch)flows значения потоков (положительные для входящих, отрицательные для исходящих) angles список углов стрелок [градусы/90]. Например, если диаграмма не повернута, вход сверху будет иметь угол 3 (ВНИЗ), а выход сверху — угол 1 (ВВЕРХ). Если поток пропущен (потому что его величина меньше, чем tolerance), его угол будет None. tips массив, в котором каждая строка — пара [x, y], указывающая положение вершин (или «впадин») траекторий потока. Если величина потока меньше tolerance для экземпляра Sankey, поток пропускается, а его вершина будет находиться в центре диаграммы.text экземпляр Textдля метки диаграммыtexts список экземпляров Textдля меток потоковСм. также
© 2012–2016 Matplotlib Development Team. All rights reserved.
Licensed under the Matplotlib License Agreement.
http://matplotlib.org/1.5.3/api/sankey_api.html