Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

Layouts of graphs with multiple components

未关闭
#80 1 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

维护者通常 1 天内回复

还没有人认领这个 Issue。

评估

难度
4/5
预计耗时
3-5 天
新手友好度
35/100
Issue 类型
缺陷
描述清晰度
基本清楚
活跃度
停滞
技术栈
julia

调研方向

使用 GraphMakie 重现不连通的双副本示例,并检查 Stress、Spectral 和 SFDP 布局的实现。确定连通分量是如何处理的;完成标准是每个分量都保留有用的布局,并且随后对这些分量进行排列时不会彼此过度分离。

由索引模型根据 Issue 内容生成。

描述

Several of the layout algorithms produce not-very-useful layouts if the input graph is not connected, i.e., has more than one connected component.

For example:

using GLMakie, GraphMakie, Graphs
g = wheel_graph(4)
es = collect(edges(g))
g2 = Graph(vcat(es, [Edge(e.src + nv(g), e.dst + nv(g)) for e in es])) # make two unconnected copies of `g`
graphplot(g2; layout=Spring())

Produces:

Which has at least two issues:

  1. The two graphs are seemingly unnecessarily far apart.
  2. The layout of each individual component is worse than it would be for a single component (compare with graphplot(g, layout=Spring()) below):

From testing, Stress, Spectral, and especially SFDP have this issue. Stress probably also has the issue, but it is less pronounced. E.g., here's graphplot(g2; layout=SFDP()):

I think it would make sense to apply these layout algorithms on the connected components of a graph individually, and then somehow layout their components subsequently.

主要语言
Julia
星标
109
派生
26
平均合并
2 天 8 小时
30 天内合并 PR
3

环境准备

这个项目没有提供开发容器、Dockerfile 或贡献指南,环境需要你自己搭建:先看它的 README,通用步骤见我们的新手贡献指南。

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

JuliaGraphs/NetworkLayout.jl 的其他 Issue

查看 JuliaGraphs/NetworkLayout.jl 的全部 Issue

相似的 Issue

更多 Julia Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。