

Ich bin der Autor von fa2der Cython-optimierte ForceAtlas2-Layout-Algorithmus für Python. Nachdem ich PyPI jahrelang als einfachen Cython-Wrapper verwendet habe, habe ich gerade Version 1.1 mit einer kompletten Überarbeitung ausgeliefert.
Was es tut: Berechnet kraftgesteuerte Diagrammlayouts – derselbe Algorithmus Gephi verwendet – direkt in Python. 10-100x schneller als reine Python-Alternativen dank Cython, mit Barnes-Hut O(n log n)-Näherung für große Diagramme.
Was ist neu in v1.1?
from fa2.easy import layout, visualize
# Edge list in → positions out. No numpy needed.
positions = layout([("A", "B"), ("B", "C"), ("A", "C")], mode="community")
# One call to render
visualize(edges, output="png", path="graph.png")
- Einfache API – keine Numpy-/Scipy-Kenntnisse erforderlich
- CLI – Python -m fa2 Layout Edges.json -o Layout.json
- 3D-Layouts – dim=3 für 3D, funktioniert mit jeder Dimension
- Antikollision – adjustSizes=True verhindert Knotenüberlappung
- Auto-Tuning – ForceAtlas2.inferSettings(G) wählt Parameter für Sie aus
- Qualitätsmetriken – Stress, Grenzüberschreitungen, Erhaltung der Nachbarschaft
- MCP-Server – KI-Agenten können Diagramme direkt gestalten (pip install fa2[mcp])
- Funktioniert mit NetworkX, igraph, Numpy-Arrays oder einfachen Edge-Listen
- 372 Tests, 100 % Abdeckung der Kernmodule
Installieren
pip install fa2
Für Cython-Beschleunigung (empfohlen):
pip install cython
pip install fa2 --no-binary fa2
Links
GitHub: https://github.com/bhargavchippada/forceatlas2 (Beispielnotizbuch zur Kasse gehen)
PYPI: https://pypi.org/project/fa2/
API-Dokumente: https://bhargavchippada.github.io/forceatlas2
ForceAtlas2-Papier: https://doi.org/10.1371/journal.pone.0098679
Gerne beantworten wir Fragen zum Algorithmus oder zur Implementierung!
Von TuriyaChips