JuliaPlots / GraphRecipes.jl

Graph-related recipes to be used with Plots.jl
Other
166 stars 27 forks source link

buchheim method broken? #98

Closed mkborregaard closed 4 years ago

mkborregaard commented 4 years ago

I've got a complex graph I'm trying to plot with method = :buccheim, but I'm getting an unintuitive result. Sorry I don't have an MWE right now, but the behaviour is:

graphplot(g, method = :tree, ms = 2)
Screenshot 2020-03-03 at 21 43 21
graphplot(g, method = :buchheim, ms = 2)
Screenshot 2020-03-03 at 21 44 07
JackDevine commented 4 years ago

Thanks for this. I have not used the tree part of GraphRecipes a lot, so I am a little unfamiliar with that corner of the code. I will do a little detective work and see how it goes...

mkborregaard commented 4 years ago

I found out my tree was bugged - it had circular relationships and apparently buchheim doesn't live with that. FWIW this is what the final plot looked like, with names:

Screenshot 2020-03-04 at 11 37 05
mkborregaard commented 4 years ago

@JackDevine have you considered formulating a project for a group of people to engage with at the Vizcon?

JackDevine commented 4 years ago

Wow! That looks amazing!

I think that I understand your problem, I gave graphplot a matrix like this:

 0  1  1
 1  1  1
 1  1  1

and plotting it as a tree was a mess.

These things shouldn't be too hard to detect. Do you think that it would be useful for the tree method to try to detect circular references and warn you if it sees something wrong?

have you considered formulating a project for a group of people to engage with at the Vizcon?

I saw the discourse post and I thought that New Zealand would probably be too far for a travel grant. Having said that, a project could be a good idea. Once the documentation goes online, I think that the barrier for entry to development on GraphRecipes will drop dramatically. Personally, I am excited to see if letting Makie/VegaLite consume plot recipes will give us the possibility for a more interactive GraphRecipes, e.g. the ability to drag nodes around or hover over a node and have it show you some metadata.

Some things that have been annoying me for a while:

I will sleep on it and try think of a good project. I think that the key will be to think of something fun that a group can pick up quickly and make real progress on.

mkborregaard commented 4 years ago

Do you think that it would be useful for the tree method to try to detect circular references and warn you if it sees something wrong?

Yes I think that would be awesome.

Should we just merge the documentation PR? I too really want interactive graphs - like a call graph you could collapse and expand by will etc.

I think that the key will be to think of something fun that a group can pick up quickly and make real progress on.

Yes - a self-contained but fairly ambitious project that would give a noticeable lift in functionality would be really great.

JackDevine commented 4 years ago

... a call graph you could collapse and expand by will etc.

Yes, we have been thinking of similar things. If the work on allowing Makie/VegaLite to consume PlotRecipes goes well at VizCon, then we should bring up this discussion again.

Should we just merge the documentation PR?

It is merged! Plus it looks like Daniel got the images to be generated automatically and he made the attributes into a table, which looks fantastic.

When is the latest that you would want me to come up with a project by? I was thinking of doing a brief write up that describes the issue/missing functionality and give some tips on how the functionality could be added to GraphRecipes. In the worst case scenario, we could just go with the list above.

mkborregaard commented 4 years ago

When is the latest that you would want me to come up with a project by?

By VizCon :-) (Weds evening)

Also, see https://julialang.slack.com/archives/C8RQUU2KH/p1583497959402000