Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jacomyal/net-to-img
A CLI tool to quickly render a network's topology as an image
https://github.com/jacomyal/net-to-img
Last synced: 21 days ago
JSON representation
A CLI tool to quickly render a network's topology as an image
- Host: GitHub
- URL: https://github.com/jacomyal/net-to-img
- Owner: jacomyal
- License: mit
- Created: 2020-01-24T13:12:40.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2022-12-30T21:35:24.000Z (almost 2 years ago)
- Last Synced: 2024-10-12T01:45:58.245Z (about 1 month ago)
- Language: JavaScript
- Size: 509 KB
- Stars: 9
- Watchers: 3
- Forks: 0
- Open Issues: 16
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
# net-to-img
A CLI tool and library to quickly render a network's topology as an image. Its goal is to make it easy to visually detect some graph patterns ([stars]() for instance).
## Installation
```bash
npm install --global net-to-img
```## Usage
At the moment, `net-to-img` only supports [GraphML](https://en.wikipedia.org/wiki/GraphML), [GEXF](https://gephi.org/gexf/format/) and [JSON for Graphology](https://graphology.github.io/serialization.html#format) formats, and only writes images as PNG images:
```bash
net-to-img path/to/graph/file path/to/output/image
```To see the list of all options, run:
```bash
net-to-img --help
# or
netimg --help
```## Library usage
You can also use `net-to-img` programmatically if you need to:
```js
const netToImg = require("net-to-img");netToImg(
{
sourcePath: "path/to/graph/file",
destPath: "path/to/output/image",
options: {
layout: false,
},
},
(err) => {
if (!err) console.log("Everything went well!");
}
);// To directly pass a graph instance
netToImg(
{
graph: myGraph,
destPath: "path/to/output/image",
options: {
layout: false,
},
},
(err) => {
if (!err) console.log("Everything went well!");
}
);// Directly passing string data
netToImg(
{
data: "",
destPath: "path/to/output/image",
options: {
from: "gexf",
layout: false,
},
},
(err) => {
if (!err) console.log("Everything went well!");
}
);
```## Disclaimer
This tool has been developped quite quickly (thanks for all the job previously done in the [Graphology](https://github.com/graphology) environment by [Guillaume Plique](http://github.com/yomguithereal)), and it breaks very easily, on a lot of the graph files I tried it on. It could be improved, especially around the following issues:
- Errors management
- ~~Stronger GraphML parser~~
- ~~Louvain multi-graph support~~
- ~~Auto sizes for nodes~~
- More graph formats (GML, ~~JSON~~...)
- More image formats (JPG, ~~SVG~~...)
- ...## Changelog
### v0.5.0
- Revamping IO (`-f/--from`, `-t/--to`, `-o/--output`, stdin support etc.)
- Fixing SVG output
- Adding the `netimg` alias
- Adding `--largest-component`### v0.4.0
- Adding possibility to directly pass a `graphology` instance
### v0.3.0
- `net-to-img` can now be used as a library
### v0.2.1
- Allow parallel edges in GraphML files
### v0.2.0
- [#2](https://github.com/jacomyal/net-to-img/issues/2) - Use FA2 [#.inferSettings](https://github.com/graphology/graphology-layout-forceatlas2#infersettings)
- [#1](https://github.com/jacomyal/net-to-img/issues/1) - Use [iwanthue](https://www.npmjs.com/package/iwanthue) for colors
- Clearer command options declaration
- [#7](https://github.com/jacomyal/net-to-img/issues/7) - RNG seeds, refactoring
- Accept files formatted as JSON for Graphology
- New option `mapSizes`
- Better API
- Export SVG images
- Better initial FA2 layout
- [#11](https://github.com/jacomyal/net-to-img/issues/11) - Cast graphs to simple before Louvain