Compare commits

...

2 Commits

Author SHA1 Message Date
Niko Abeler 2d3572e63b install and dev 2022-11-20 19:03:45 +01:00
Niko Abeler 46cac1528c networkx example 2022-11-20 19:01:52 +01:00
2 changed files with 39 additions and 12 deletions

13
DEVELOPMENT.md Normal file
View File

@ -0,0 +1,13 @@
## Development
### Setup
```
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
```
### Build
```
maturin develop
```

View File

@ -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)