Compare commits
2 Commits
407a08d1f7
...
2d3572e63b
Author | SHA1 | Date |
---|---|---|
Niko Abeler | 2d3572e63b | |
Niko Abeler | 46cac1528c |
|
@ -0,0 +1,13 @@
|
|||
## Development
|
||||
|
||||
### Setup
|
||||
```
|
||||
python3 -m venv venv
|
||||
source venv/bin/activate
|
||||
pip install -r requirements.txt
|
||||
```
|
||||
|
||||
### Build
|
||||
```
|
||||
maturin develop
|
||||
```
|
38
README.md
38
README.md
|
@ -2,18 +2,10 @@
|
|||
|
||||
A python/rust library for embedding graphs in 2D space, using force-directed layouts.
|
||||
|
||||
## Development
|
||||
## Installation
|
||||
|
||||
### Setup
|
||||
```
|
||||
python3 -m venv venv
|
||||
source venv/bin/activate
|
||||
pip install -r requirements.txt
|
||||
```
|
||||
|
||||
### Build
|
||||
```
|
||||
maturin develop
|
||||
```bash
|
||||
pip install graph_force
|
||||
```
|
||||
|
||||
## Usage
|
||||
|
@ -22,4 +14,26 @@ import graph_force
|
|||
|
||||
edges = [(0, 1), (1, 2), (2, 3), (3, 0)]
|
||||
pos = graph_force.layout_from_edge_list(4, edges)
|
||||
```
|
||||
```
|
||||
|
||||
### Example with networkx
|
||||
```python
|
||||
import networkx as nx
|
||||
import graph_force
|
||||
|
||||
G = nx.grid_2d_graph(10, 10)
|
||||
# we have to map the names to integers
|
||||
# as graph_force only supports integers as node ids at the moment
|
||||
edges = []
|
||||
mapping = {n: i for i, n in enumerate(G.nodes)}
|
||||
i = 0
|
||||
for edge in G.edges:
|
||||
edges.append((mapping[edge[0]], mapping[edge[1]]))
|
||||
|
||||
pos = graph_force.layout_from_edge_list(len(G.nodes), edges, iter=1000)
|
||||
nx.draw(G, {n: pos[i] for n, i in mapping.items()}, node_size=2, width=0.1)
|
||||
```
|
||||
|
||||
## Contributing
|
||||
|
||||
- [Development](DEVELOPMENT.md)
|
Loading…
Reference in New Issue