d3-plugin-captain-sankey icon indicating copy to clipboard operation
d3-plugin-captain-sankey copied to clipboard

Support cycles in graph

Open soxofaan opened this issue 9 years ago • 4 comments

related to #4 and https://github.com/d3/d3-plugins/issues/1

soxofaan avatar May 28 '15 20:05 soxofaan

demo of current implementation: http://bl.ocks.org/soxofaan/7c96560677ead0425fe7

screen shot 2015-05-29 at 02 09 49

soxofaan avatar May 29 '15 00:05 soxofaan

the cycles support is very cool. Thanks soxofaan for the great work! However, I need some help as got into performance issues when cycles path included in links. the data size is not huge, with 23 nodes and about 126 links. The UI didn't render. If all the cycle path removed, it rendered right away. Attaching the test data below. Thanks!

[ {"name": "0"}, {"name": "1"}, {"name": "2"}, {"name": "3"}, {"name": "4"}, {"name": "5"}, {"name": "6"}, {"name": "7"}, {"name": "8"}, {"name": "9"}, {"name": "10"}, {"name": "11"}, {"name": "12"}, {"name": "13"}, {"name": "14"}, {"name": "15"}, {"name": "16"}, {"name": "17"}, {"name": "18"}, {"name": "19"}, {"name": "20"}, {"name": "21"}, {"name": "22"}]

//links [{"source": 8, "target": 9,"value": 1}, {"source": 9, "target": 20,"value": 1}, {"source": 20, "target": 14,"value": 1}, {"source": 14, "target": 12,"value": 1}, {"source": 12, "target": 13,"value": 1}, {"source": 13, "target": 15,"value": 1}, {"source": 15, "target": 10,"value": 1}, {"source": 10, "target": 18,"value": 1}, {"source": 18, "target": 19,"value": 1}, {"source": 19, "target": 11,"value": 1}, {"source": 11, "target": 16,"value": 1}, {"source": 16, "target": 18,"value": 1}, {"source": 18, "target": 19,"value": 1}, {"source": 19, "target": 17,"value": 1}, {"source": 17, "target": 21,"value": 1}, {"source": 21, "target": 4,"value": 1}, {"source": 4, "target": 0,"value": 1}, {"source": 0, "target": 2,"value": 1}, {"source": 2, "target": 22,"value": 1}, {"source": 22, "target": 3,"value": 1}, {"source": 3, "target": 1,"value": 1}, {"source": 1, "target": 5,"value": 1}, {"source": 5, "target": 6,"value": 1}, {"source": 6, "target": 7,"value": 1}, {"source": 8, "target": 9,"value": 1}, {"source": 9, "target": 20,"value": 1}, {"source": 20, "target": 14,"value": 1}, {"source": 14, "target": 15,"value": 1}, {"source": 15, "target": 10,"value": 1}, {"source": 10, "target": 18,"value": 1}, {"source": 18, "target": 19,"value": 1}, {"source": 19, "target": 11,"value": 1}, {"source": 11, "target": 16,"value": 1}, {"source": 16, "target": 18,"value": 1}, {"source": 18, "target": 19,"value": 1}, {"source": 19, "target": 17,"value": 1}, {"source": 17, "target": 21,"value": 1}, {"source": 21, "target": 4,"value": 1}, {"source": 4, "target": 0,"value": 1}, {"source": 0, "target": 2,"value": 1}, {"source": 2, "target": 22,"value": 1}, {"source": 22, "target": 3,"value": 1}, {"source": 3, "target": 1,"value": 1}, {"source": 1, "target": 5,"value": 1}, {"source": 5, "target": 6,"value": 1}, {"source": 6, "target": 7,"value": 1}, {"source": 8, "target": 9,"value": 1}, {"source": 9, "target": 20,"value": 1}, {"source": 20, "target": 14,"value": 1}, {"source": 14, "target": 15,"value": 1}, {"source": 15, "target": 10,"value": 1}, {"source": 10, "target": 18,"value": 1}, {"source": 18, "target": 19,"value": 1}, {"source": 19, "target": 11,"value": 1}, {"source": 11, "target": 16,"value": 1}, {"source": 16, "target": 18,"value": 1}, {"source": 18, "target": 19,"value": 1}, {"source": 19, "target": 17,"value": 1}, {"source": 17, "target": 21,"value": 1}, {"source": 21, "target": 4,"value": 1}, {"source": 4, "target": 0,"value": 1}, {"source": 0, "target": 2,"value": 1}, {"source": 2, "target": 3,"value": 1}, {"source": 3, "target": 1,"value": 1}, {"source": 1, "target": 5,"value": 1}, {"source": 5, "target": 6,"value": 1}, {"source": 6, "target": 7,"value": 1}, {"source": 8, "target": 9,"value": 1}, {"source": 9, "target": 20,"value": 1}, {"source": 20, "target": 21,"value": 1}, {"source": 21, "target": 4,"value": 1}, {"source": 4, "target": 5,"value": 1}, {"source": 5, "target": 6,"value": 1}, {"source": 6, "target": 7,"value": 1}, {"source": 8, "target": 9,"value": 1}, {"source": 9, "target": 20,"value": 1}, {"source": 20, "target": 21,"value": 1}, {"source": 21, "target": 4,"value": 1}, {"source": 4, "target": 22,"value": 1}, {"source": 22, "target": 5,"value": 1}, {"source": 5, "target": 6,"value": 1}, {"source": 6, "target": 7,"value": 1}, {"source": 8, "target": 9,"value": 1}, {"source": 9, "target": 20,"value": 1}, {"source": 20, "target": 14,"value": 1}, {"source": 14, "target": 15,"value": 1}, {"source": 15, "target": 10,"value": 1}, {"source": 10, "target": 18,"value": 1}, {"source": 18, "target": 19,"value": 1}, {"source": 19, "target": 11,"value": 1}, {"source": 11, "target": 16,"value": 1}, {"source": 16, "target": 18,"value": 1}, {"source": 18, "target": 19,"value": 1}, {"source": 19, "target": 17,"value": 1}, {"source": 17, "target": 21,"value": 1}, {"source": 21, "target": 4,"value": 1}, {"source": 4, "target": 0,"value": 1}, {"source": 0, "target": 2,"value": 1}, {"source": 2, "target": 22,"value": 1}, {"source": 22, "target": 3,"value": 1}, {"source": 3, "target": 1,"value": 1}, {"source": 1, "target": 5,"value": 1}, {"source": 5, "target": 6,"value": 1}, {"source": 6, "target": 7,"value": 1}, {"source": 8, "target": 9,"value": 1}, {"source": 9, "target": 20,"value": 1}, {"source": 20, "target": 14,"value": 1}, {"source": 14, "target": 15,"value": 1}, {"source": 15, "target": 10,"value": 1}, {"source": 10, "target": 18,"value": 1}, {"source": 18, "target": 19,"value": 1}, {"source": 19, "target": 11,"value": 1}, {"source": 11, "target": 16,"value": 1}, {"source": 16, "target": 18,"value": 1}, {"source": 18, "target": 19,"value": 1}, {"source": 19, "target": 17,"value": 1}, {"source": 17, "target": 21,"value": 1}, {"source": 21, "target": 4,"value": 1}, {"source": 4, "target": 0,"value": 1}, {"source": 0, "target": 2,"value": 1}, {"source": 2, "target": 22,"value": 1}, {"source": 22, "target": 3,"value": 1}, {"source": 3, "target": 1,"value": 1}, {"source": 1, "target": 5,"value": 1}, {"source": 5, "target": 6,"value": 1}, {"source": 6, "target": 7,"value": 1}]

androidkencai avatar Oct 29 '15 22:10 androidkencai

hi @androidkencai, thanks for you feedback

did you try that on the master branch, or on the feature branch of this issue? https://github.com/soxofaan/d3-plugin-captain-sankey/tree/issue-6-cycle-handling

I also noticed you have a lot of duplicates in your links. There are only 29 unique links:

{"source": 0, "target": 2,"value": 1},
{"source": 1, "target": 5,"value": 1},
{"source": 10, "target": 18,"value": 1},
{"source": 11, "target": 16,"value": 1},
{"source": 12, "target": 13,"value": 1},
{"source": 13, "target": 15,"value": 1},
{"source": 14, "target": 12,"value": 1},
{"source": 14, "target": 15,"value": 1},
{"source": 15, "target": 10,"value": 1},
{"source": 16, "target": 18,"value": 1},
{"source": 17, "target": 21,"value": 1},
{"source": 18, "target": 19,"value": 1},
{"source": 19, "target": 11,"value": 1},
{"source": 19, "target": 17,"value": 1},
{"source": 2, "target": 22,"value": 1},
{"source": 2, "target": 3,"value": 1},
{"source": 20, "target": 14,"value": 1},
{"source": 20, "target": 21,"value": 1},
{"source": 21, "target": 4,"value": 1},
{"source": 22, "target": 3,"value": 1},
{"source": 22, "target": 5,"value": 1},
{"source": 3, "target": 1,"value": 1},
{"source": 4, "target": 0,"value": 1},
{"source": 4, "target": 22,"value": 1},
{"source": 4, "target": 5,"value": 1},
{"source": 5, "target": 6,"value": 1},
{"source": 6, "target": 7,"value": 1},
{"source": 8, "target": 9,"value": 1},
{"source": 9, "target": 20,"value": 1},

Is there any reason for having all these duplicates?

If I eliminate all or some duplicates, the rendering goes a lot faster and renders this: screen shot 2015-11-02 at 23 57 03

soxofaan avatar Nov 02 '15 23:11 soxofaan

Hi @soxofaan, sorry for the late reply. right, those duplicates should be combined. regardless when having large set of links. there are performance issues.

just FYI, I found that this version has better performance. Thanks! http://sankey.csaladen.es/

androidkencai avatar Apr 13 '16 18:04 androidkencai