1

正如标题所说,每当我保存桑基图时,无论它是大还是小,它总是会产生一个空白的 svg。有没有办法解决这个问题?该图在我的 jupyter 笔记本中正常显示,但保存了一个空白 svg(只有标题可见)。

我正在使用 3.6.1

我已经在 plotly 社区委员会上问过同样的问题,但是没有任何回应。

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))
4

1 回答 1

0

Plotly 不支持任何循环引用。起初我认为这仅适用于节点引用自身的情况,但似乎它也适用于“A-> B,B-> A”之类的情况。出于某种奇怪的原因,我的 sankey 图表仍然被渲染,但它们没有被保存。

于 2019-03-03T00:37:48.533 回答