Интересно, может ли кто-нибудь помочь понять, почему эта диаграмма Санки не работает. Я уверен, что я следовал правильному синтаксису и соглашениям для использования этого модуля. Из-за этого.
import plotly.offline
data_trace = {'domain': {'x': [0, 1], 'y': [0, 1]},
'height': 772,
'link': {'label': ['EM', 'GWF9C51E', 'GWF9C511', 'GWF9C51E Sensor Set',
'GWF9C511 Sensor Set'],
'source': [0, 1, 3, 1, 4, 2, 0, 2],
'target': [1, 3, 1, 0, 2, 0, 2, 4],
'value': [40, 76, 29, 86, 30, 75, 41, 65]},
'node': {'color': ['blue', 'yellow', 'yellow', 'green', 'green'],
'label': ['EM', 'GWF9C51E', 'GWF9C511', 'GWF9C51E Sensor Set',
'GWF9C511 Sensor Set'],
'line': {'color': 'black', 'width': 0.5},
'pad': 15,
'thickness': 15},
'orientation': 'h',
'type': 'sankey',
'valueformat': '.3s',
'valuesuffix': 'pkts',
'width': 1118}
layout = dict(
title = "Testing Sankey",
font = dict(
size = 10
)
fig = dict(data=[data_trace], layout=layout)
plotly.offline.plot(fig, validate=False)
Проблема заключается в следующем:
'source': [1, 3],
'target': [3, 1]
У вас не могут быть источники и целевые двойные роли, т.е. Узел 1 является одновременно источником и целью.
В зависимости от вашего варианта использования вам может потребоваться разделить его.
Для меня это касается сетевого продукта, поэтому я разбил свои узлы на "RX" и "TX", поэтому я не удваиваю список источников/целевых данных.