thomasp85 / ggraph

Grammar of Graph Graphics
https://ggraph.data-imaginist.com
Other
1.06k stars 112 forks source link

Exterior Edge Routing #303

Open markushlang opened 2 years ago

markushlang commented 2 years ago

I wondered whether it would be possible to implement something like "exterior edge routing" to improve the readability of graphs created with the hierarchical edge bundling technique; e.g.

flaregraph <- graph_from_data_frame(flare$edges, vertices = flare$vertices)

from <- match(flare$imports$from, flare$vertices$name)
to <- match(flare$imports$to, flare$vertices$name)

ggraph(flaregraph, layout = 'dendrogram', circular = TRUE) + 
    geom_conn_bundle(data = get_con(from = from, to = to), alpha = 0.1) + 
    coord_fixed()

The idea would be to route edges that are part of the same group around the exterior of a "connected circle".

This has, for instance, been used to visualize trade agreements between countries in different "trading blocks": http://ftavis.com/

thomasp85 commented 7 months ago

I would be happy to review a PR that provided this functionality but otherwise I'm afraid I won't have the bandwidth to look into it myself