JuliaGraphs / JuliaGraphs/GraphPlot.jl

Layout problems with directed graph containing many disconnected components

Open
#82 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug
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.

backedges.pdf
backedges2.pdf

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

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.