JuliaGraphs / JuliaGraphs/GraphPlot.jl
Layout problems with directed graph containing many disconnected components
Nobody has claimed this yet.
- Dominant language
- Julia
- Stars
- 213
- Forks
- 62
- PR merge metrics
- No merged PRs in 30d
Description
I'm attaching some files that show the result of rendering with GraphPlot (gets it wrong) and with TikzGraph (gets it right).
The data are here: https://drive.google.com/file/d/12CfjV7kv2r7EAmSQoudfMog7p9r-OAr1/view?usp=sharing
Save that to /tmp/backedges.jld2 or something similar. Then you can create the graph with
julia> using FileIO
julia> backedges = load("/tmp/backedges.jld2", "backedges");
julia> using LightGraphs
julia> g = SimpleDiGraph(length(backedges))
{652, 0} directed simple Int64 graph
julia> for (i, deps) in enumerate(backedges)
for src in deps
add_edge!(g, src, i)
end
end
and then plot g.
With GraphPlot you can see the edges don't connect to nodes on both ends.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Download the supplied data to /tmp/backedges.jld2, recreate the 652-node SimpleDiGraph with the Julia and LightGraphs commands in the issue, and plot it with GraphPlot. Compare the result with backedges.pdf and backedges2.pdf, then trace GraphPlot's layout and edge-rendering entry points to determine why edges miss nodes in graphs with many disconnected components; done means the reproduced graph connects edges at both ends.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- julia
- Domain
- data-visualization
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 42/100