node positions do not work with link value zero in Sankey
Personne n'a encore pris cette issue.
- Langage dominant
- Python
- Étoiles
- 18.8k
- Forks
- 2.8k
- Merge moyen
- 16 h 26 min
- PR mergées (30 j)
- 21
Description
Hello,
I'm new to the plot.ly lib but I already discovered an issue.
If there is a node with:
- no links
- only links with the value of zero
the manual positioning doesn't work anymore except if you delete the relating coordinates of this node and keep the node in the list (see third example).
Below you can find a short testing code with the generated output.
working example
import plotly.graph_objects as go
data=go.Sankey(
arrangement = "freeform",
node = {
"label": ["A", "B", "C", "D", "E", "F"],
"x": [0.2, 0.1, 0.9, 0.7, 0.3, 0.9],
"y": [0.1, 0.9, 0.2, 0.1, 0.9, 0.9],
'pad':100}, # 10 Pixels
link = {
"source": [0, 0, 1, 4, 4, 3, 3],
"target": [1, 3, 4, 3, 5, 2, 5],
"value": [3, 3, 5, 4, 10, 1, 7 ]})
fig_sankey = go.Figure(data=data)
fig_sankey.show()

node with only one link with value of zero
import plotly.graph_objects as go
data=go.Sankey(
arrangement = "freeform",
node = {
"label": ["A", "B", "C", "D", "E", "F"],
"x": [0.2, 0.1, 0.9, 0.7, 0.3, 0.9],
"y": [0.1, 0.9, 0.2, 0.1, 0.9, 0.9],
'pad':100}, # 10 Pixels
link = {
"source": [0, 0, 1, 4, 4, 3, 3],
"target": [1, 3, 4, 3, 5, 2, 5],
"value": [3, 3, 5, 4, 10, 0, 7 ]})
fig_sankey = go.Figure(data=data)
fig_sankey.show()

kind of working again cause coordinates of C are deleted
import plotly.graph_objects as go
data=go.Sankey(
arrangement = "freeform",
node = {
"label": ["A", "B", "C", "D", "E", "F"],
"x": [0.2, 0.1, 0.7, 0.3, 0.9],
"y": [0.1, 0.9, 0.1, 0.9, 0.9],
'pad':100}, # 10 Pixels
link = {
"source": [0, 0, 1, 4, 4, 3, 3],
"target": [1, 3, 4, 3, 5, 2, 5],
"value": [3, 3, 5, 4, 10, 0, 7 ]})
fig_sankey = go.Figure(data=data)
fig_sankey.show()

Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
Commencez par exécuter les exemples Sankey Python fournis et comparez le positionnement libre lorsqu’un lien a une valeur nulle. Suivez le chemin de rendu Sankey depuis la définition de la figure Python jusqu’au composant qui gère les positions des nœuds. La tâche sera considérée comme terminée lorsque les coordonnées manuelles resteront effectives pour les nœuds sans liens ou n’ayant que des liens de valeur nulle, avec un test de régression couvrant les deux cas.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- python
- Domaine
- data-visualization
- Type d'issue
- Bug
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 35/100