Webiks / force-horse

force-horse: An angular.js wrapper for a d3.js force layout
http://webiks.com/blog/force-horse-demo/
16 stars 3 forks source link

Request - Half links and labels #17

Closed cpmarvin closed 6 years ago

cpmarvin commented 6 years ago

It would be useful if you can update the code to include half links and label links.

I have something similar based on d3js ( https://github.com/cpmarvin/d3js ) . The calculation for parallel links is no way near as precise as you guys.

Regards,

AmitMY commented 6 years ago

@ramtob Is the architect here. Ram, what do you say?

ramtob commented 6 years ago

Hi. What are half links?

And as to label links, do you mean giving labels to links?

cpmarvin commented 6 years ago

hi @ramtob

image

Hope above explains what i mean by half links. C-D has a label of 10 , while d-c has a label of 30 . Both links are represented on the graph,link c-d has a "distance" of c-d/2 just like the third link C-D metric 20.

Label links , yes allowing labels on the links. The current implementation of force-horse is using lines and not paths. I'm not sure if you can have text object on links , thus my question if you plan to support this in the future.

thx.

ramtob commented 6 years ago

Hi @cpmarvin

Tnx for the suggestions. I'm not sure about half links (didn't hear about it until now), but as to link labels, as we are busy elsewhere right now, you may want to add the option yourself to force-horse, via a pull request.

As to future plans for force-horse, @OmKoren may want to add.

OmKoren commented 6 years ago

Hi @cpmarvin Thanks for the suggestion and for your interest in force-horse. I still don't really understand the use-case of half-links - can you please elaborate or give some examples? In which scenarios would one create a "half link"? How does it settle with the basics of Graph Theory? How does it impact calculation of SNA measures, such as degree centrality and betweeness? I'm asking all those questions because we consider force-horse to be a generic network visualization library, and I wonder how generic is the half-link requirement.

cpmarvin commented 6 years ago

Hi @OmKoren ,

I understand and yes maybe this is following the generic network library.

The reason i'm asking , is because in the planned features you had Dijkstra SFP between nodes. Considering the cost between nodes might not be symmetric , the "half" links concept might help with that. The second used case , would be to integrate a weather-map style function , where each direction of the link has different property(https://github.com/cpmarvin/d3js_weathermap).

I will close this feature request as looks to be more specific to my needs rather the the scope of force-horse.

The parallel links code you have has helped me with my project. Thx for that.

OmKoren commented 6 years ago

Hi @cpmarvin Glad to hear that our code was useful to you. The link labels feature is definitely generic so I opened it as a new issue. See issue #18 We will try to add it to future releases. Regarding the asymmetric behviour - generalizing it would probably be to add a "directed graph" functionality to force-horse (currently we only support undirected graphs). Will look in to it as well. Thanks

ramtob commented 6 years ago

Hi @cpmarvin @OmKoren

You may be interested to know that I extracted the parallel-links feature to a separate plugin. See https://github.com/ramtob/d3-parallel-links It includes a demo as well.