-
Notifications
You must be signed in to change notification settings - Fork 1.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Hierarchy Graphs #859
Comments
The issue is about the gexf file format. Do you have the same issue or do you just want to render your graph as a philogeny? |
The API serves up our data in a different format, but it doesn't take much effort to transform it to whatever we need.
I need the ability to render some hierarchical network. So yes, phylogeny is the appropriate type of graph. There are parent-child relationships, sibling relationships, and self relationships (I call myself)
|
What would be the size of you tree in terms of number of nodes? The fact is sigma has been designed to render graphs, not trees. So one would probably need to develop a tree layout algorithm to be used with sigma to display it like a philogeny. |
We are possibly dealing with trees with 100 or more nodes. A level within the tree may have 30 or more nodes.
|
Ok. Have you by chance considered d3? You don't have a lot of nodes & the fact is sigma can do the job but will require you to write some amount of code to do the layout. |
We are concerned with performance with SVG and canvas libraries. Also, we have requirements to expand graphs to hundreds of nodes and edges.
CPU driven graphs rendered with Vis have severely slowed down our UI. I'm trying to find a WebGL library that can build tree structures and do it without crippling the UI.
…Sent from my iPhone
On May 6, 2017, at 7:40 AM, Guillaume Plique ***@***.***> wrote:
Ok. Have you by chance considered d3? You don't have a lot of nodes & the fact is sigma can do the job but will require you to write some amount of code to do the layout.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or mute the thread.
|
Well I guess than one option then would be to develop the layout algorithm and use it with sigma. I can help you towards this if you want. Do you have, per chance, an image showing roughly what you intend to render? |
this is rendered with Vis right now. The large graph is rather tame, displaying less than 100 nodes. We found that Vis's render time was slow with anything over 100 nodes. It's even worse when displaying a typical network graph. |
Do your node's data contain layout information or was it computed by Vis? Sigma would not have issues rendering graphs of that scale but does not have the code to perform this kind of layout. You would just need to compute the layout beforehand before using sigma to render. |
Vis handles layout for us, which is a very nice thing to have. Developing our own layout algorith isn't necessarily out of the question. We have requirements to display performant graphs. So if that means creating our own layout algorithm I think we would be ok spending the time to do it. |
some requirements:
|
All your requirements can be met with sigma. The only one that might be problematic for performance is edge labeling but considering the scale of your graphs this should not be too much of an issue. |
Currently we have the edge label as a caption when you hover the edge. Is that possible and with better performance?
|
That's possible indeed.
Since I don't know what are your current performance I can't really tell. What I know is that edge hovering is an algorithmical nightmare and tends to slow everything down (specially if you represent them as bézier curves). |
Have you by any chance checked out |
That's very interesting. I see it's no longer being maintained. How complex were your graphs @AVermeij ? Did you have large graphs with over 150 nodes? Was there any pain in implementing dagre with sigma? |
I remember it working pretty well with graphs of a few hundred nodes, the main performance bottleneck being the layout calculations - in terms of rendering Actually, I just remembered the guys over at Linkurious developed a drop-in plugin to use Edit: it's also possible to delegate the layout calculations to a webworker so that they don't block the browser - may help when graphs get larger and calcs take longer. |
awesome. Thanks for your edit. Delegating to a web worker is critical when we have graphs with hundreds of nodes and edges |
Did you try to implement dagre with sigma? |
I just got back from over 30 days of military training. I will hopefully get to this at work soon.
|
Here is my beta version of Hierarchy for 710 nodes. Comments appreciated. |
What's the layout algorithm used? Did you develop it yourself for this example? I would very much like to implement it for graphology so it can be used with sigma's next version. |
Yes, I developed it myself. Does that mean we should call it the "Lozinski Algorithm." Maybe it would be easier to implement it with graphology than with Sigma. I had to add parent and children variables to each Sigma.js node object. I guess in due course a new version of sigma.js based on graphology will be released, and then it should be relatively easy for me to port it over. Is that fast enough? Do you have an urgent need for a hierarchy view? I took a look at what you are doing. I think that your project is very interesting. Can I call you to discuss this further? Warm Regards |
Thank you for your interest. |
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions. |
Hey @Yomguithereal Any update on this issue? I have a kinda same use case, but with +10,000 nodes. So D3 is sadly not an option. :( @Prophet32j what did you end up doing? |
Oh it is ancient and no longer online. Basically it was a circular tree of nodes, with some simple algorithms to determine the angle of each branch. Not that much work to replicate. |
@hakunamatata97k Find anything that would work to draw this type of topology? |
I'm looking at sigma.js for potentially replacing vis.js as our big data graphing library of choice. One of the deal breakers is hierarchy views of the network. I don't see anything besides this old issue #162 that says it's not possible, but potentially getting worked on. That was 3 years ago. Any word on this?
The text was updated successfully, but these errors were encountered: