Графики Санки пустые при сохранении в SVG с использованием plotly для python
Как следует из названия, всякий раз, когда я сохраняю граф Санки, независимо от того, большой он или маленький, он всегда выдает пустое SVG. Есть ли способ решить эту проблему? График обычно отображается в моей записной книжке Jupyter, но сохраняет пустое SVG (виден только заголовок).
Я использую заговор 3.6.1
Я уже задавал тот же вопрос на совете сообщества, но ответа не было.
def drawSankeyForAreaFlow(area_flow_data, log_index):
sankeyData = getSankeyData(area_flow_data)
data = dict(
type='sankey',
node = dict(
pad = 30,
line = dict(
width = 0.5
),
label = ['label 1', 'label 2', 'label 3', 'label 4', 'label 5', 'label 6', 'label 7', 'label 8', 'label 9', 'label 10', 'label 11', 'label 12', 'label 13', 'label 14', 'label 15', 'label 16'],
color = ['#FF40C5', '#FF4A80', '#FF713D', '#FF9600', '#E5B200', '#A4C700', '#47D400', '#00DB65', '#00DFAE', '#00E1F5', '#00DEFF', '#00D6FF', '#00C7FF', '#58AEFF', '#EA8BFF', '#FF61FF', '#FF40C5']
),
link = dict(
source = [0, 2, 2, 2, 2, 2, 3, 4, 4, 4, 5, 8, 8, 9, 11, 12, 12, 14, 14, 15, 15, 15, 15, 15],
target = [2, 4, 5, 11, 12, 15, 9, 4, 12, 15, 2, 2, 4, 0, 3, 0, 2, 8, 14, 0, 4, 12, 14, 15],
value = [6, 2, 1, 1, 2, 2, 1, 1, 1, 5, 1, 1, 1, 1, 1, 4, 1, 1, 1, 1, 3, 2, 1, 6]
))
layout = dict(
title = "Sankey for log " + str(log_index),
font = dict(
size = 10
)
)
fig=go.Figure(data=[data],layout=layout)
pio.write_image(fig, "./output/graphs/" + "Sankey for log " + str(log_index) + ".svg")
plotly.offline.iplot(fig, validate=False)
return {'sources': sankeyData['sources'], 'targets': sankeyData['targets'], 'values': sankeyData['values']}
allSankeyData = []
for i, log in enumerate(logs):
allSankeyData.append(drawSankeyForAreaFlow(log["properties"]["area_flow"], i))
1 ответ
Plotly не поддерживает НИКАКИЕ циклические ссылки. Сначала я подумал, что это предназначено только для случаев, когда узлы ссылаются на себя, но, похоже, это также относится и к случаям типа "A->B, B->A". По какой-то странной причине мои графы Санки все еще визуализировались, но они не были сохранены.