добавить метки и настроить узлы на графике Sankey - PullRequest
0 голосов
/ 07 февраля 2019

Я пытаюсь настроить диаграмму Санки, выполненную с помощью pyplot.Я просто хотел бы сделать некоторые узлы невидимыми (например, прозрачными) и добавить несколько меток к соединению между узлами.

Я немного изменил код, приведенный в качестве примера на веб-сайте, без особого успеха.Свойства узла кажутся одинаковыми для всех одинаковыми.Добавление метки к ссылкам не изменяет вывод.

import plotly.plotly as py
data = dict(
type='sankey',
node = dict(
  pad = 15,
  thickness = 20,
  line = dict(
    color = "black",
    width = 0.5
  ),
  label = ["A1", "A2", "B1", "B2", "C1", "C2"],

  color = ["blue", "blue", "blue", "blue", 
  "white", "white"]),#attempt to make it less visible

link = dict(
  source = [0,1,0,2,3,3],
  target = [2,3,3,4,4,5],
  value = [8,4,2,8,4,2],
  # attempt to add labels
  label= [8,4,2,8,4,2]))

layout =  dict(
title = "Basic Sankey Diagram",
font = dict(
  size = 10
 )
 )

fig = dict(data=[data], layout=layout)
py.iplot(fig, validate=False)

Есть предложения, как это сделать?

1 Ответ

0 голосов
/ 08 февраля 2019

Вы можете просто добавить аннотации для каждого из ярлыков ссылок, проблема в том, что даже если вы добавите ярлык к ссылкам, он будет отображаться только при наведении курсора!ниже приведен пример добавления аннотаций для вашей справки!

import plotly.graph_objs as go
import plotly.offline as py
py.init_notebook_mode()
import numpy as np

data = dict(
type='sankey',
node = dict(
  pad = 15,
  thickness = 20,
  line = dict(
    color = "black",
    width = 0.5
  ),
  label = ["A1", "A2", "B1", "B2", "C1", "C2"],

  color = ["blue", "blue", "blue", "blue", 
  "gray", "white"]),#attempt to make it less visible

link = dict(
  source = [0,1,0,2,3,3],
  target = [2,3,3,4,4,5],
  value = [8,4,2,8,4,2],
  # attempt to add labels
  label= [8,4,2,8,4,2]))

layout =  dict(
title = "Basic Sankey Diagram",
font = dict(
  size = 10
 ),
    annotations=[
        dict(
            x=0.25,
            y=0.75,
            text='8',
            showarrow=False
        ),
        dict(
            x=0.75,
            y=0.25,
            text='4',
            showarrow=False
        )
    ]
 )

fig = dict(data=[data], layout=layout)
py.iplot(fig, validate=False)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...