v2, sigma.js focuses on the management of graph display: rendering, interaction... The graph model is managed in a separate library called graphology, which is packed with convenience methods to manage graph data structures, and a lot of satellite libraries to handle various graph-related problems (metrics, community detection, layout algorithms...).
Graphology website offers a list of these libraries. Most of them can help you solve problems in your sigma.js based web applications.
Sigma.js uses WebGL to render graphs. This makes it good at rendering medium to larger graphs in web pages (thousands of nodes and edges or more). It is also possible to customize rendering, but it is harder than it would be with SVG or Canvas based solutions.
Each way to draw a node or an edge is implemented as a
program. You can develop your own, or use the owns provided by sigma. You can check this example to see how to use multiple programs. Also, you can check the list of available programs here.
You can install
graphology which is required for
npm install graphology sigma
git clone firstname.lastname@example.org:jacomyal/sigma.js.git cd sigma.js npm install cd examples npm start --example=load-gexf-file # Change this to the desired example
List of available examples
- Fetching and displaying a graph contained in a gexf file
- Using node & edge reducers to handle interactivity
- Fetching, parsing & wrangling a CSV file to create a network map
- Handling drag and drop of nodes as well as node & edge creation on click
- Displaying arbitrary elements, such as cluster labels, synchronized with the network
- Applying different animated layout algorithms to a network
- Displaying nodes in various custom ways
- Saving the graph as a PNG image
- Use events to implement interactions
The current website is a simple manually crafted single-page website. It is located in the
website folder. It also showcases the React.js based demo available in the
demo folder in an iframe. The website itself does not need any build step, though the demo does.
To start a dev server that will reload the webpage when the code is updated, run:
npm run website:watch
localhost:8080 in your browser. When any file in the
website directory is saved (including the demo bundle), the page will be reloaded.
To simply build the demo and copy the bundle in the
website folder, just run:
npm run website:all
You can also browse the related documentation here.