Software Open Access

webweb: a tool for creating lightweight network visualizations in the browser

Wapman, K. Hunter; Larremore, Daniel B.

webweb is a package for creating interactive and portable visualizations of complex networks in the web browser that can be easily shared. With webweb, users of MATLAB, pure Python, and Python's networkX are able to write complex network data directly to a dependency-free html file. When opened in a browser, this file's embedded javascript functions render both an interactive network visualization and a lightweight user interface, allowing solo users to visualize and explore their data, or easily share their visualizations with collaborators with a single file.

The style of webweb's network visualization is called a force-directed layout, which renders each network node as a circle, each network link as a line, and uses simulated forces to spread nodes apart while keeping linked nodes near each other. Although numerous existing software packages (gephi, cytoscape) and libraries (netwulf, d3js) are capable of creating such layouts, webweb fits uniquely into this space for three reasons. First, its output is a single html file, making it viewable in any OS and browser capable of rendering html and javascript, without installation of software or libraries. Second, its visualizations are dynamic, explorable, and customizable within the web browser. Third, it can be driven entirely in Python or MATLAB, and can conveniently handle many common types of network data.

In addition to visualizing networks, webweb allows users to color or size a network's nodes by metadata attributes, including scalar, boolean, and categorical values. Networks can be weighted or unweighted, and the stroke width of the network can reflect link weights via one of the html checkboxes in the interface. While all display options can be user-adjusted in the browser via the UI, all display option defaults can also be set from the Python or MATLAB code. Extensive examples and a complete list of API-accessible display options are provided on the documentation website.

webweb is intended for network scientists who may or may not programmers.  Its API is structured to support a wide range of inputs formats (edge lists, adjacency matrixes, vectorized and JSON-object style metadata), and it behaves intelligently when given ambiguous inputs. 

For scientific publications, webweb features a _Save to SVG_ button, allowing a user to save the current display as a scalable vector graphics file, a format compatible with most browsers and editable using software such as Gimp or Illustrator. Figures created this way have been used in several publications. 

webweb's source code can be found at webwebpage.github.io, and complete documentation can be found at webwebpage.github.io, including examples, complete API documentation, and uses of the complete set of parameters webweb supports.
 

Files (382.4 kB)
Name Size
__init__.py
md5:e17f2dce08acaceb59522a7f96c8b3c0
113 Bytes Download
Blob.js
md5:60228fc08e5f44c59cb5883902f3e7b1
7.9 kB Download
colors.js
md5:0f71925c1d17fbfefd5e7f009525eaae
22.6 kB Download
d3.v5.min.js
md5:0589331f8f4bf99216faa31d79cc6d09
237.7 kB Download
FileSaver.min.js
md5:6cfbe5af092eb7cf48da10b75a1d6126
2.4 kB Download
pygmlion.py
md5:810d72d100a7491aadf90fee95bc27a8
20.1 kB Download
style.css
md5:00e68dca1d2fc7e14e9126ff3128fca3
1.4 kB Download
webweb.m
md5:d5fe1eecd9c8967c5f0429d14a3dd24a
7.9 kB Download
webweb.py
md5:47a072637975883f7d945ca6ca44f954
14.9 kB Download
webweb.v5.js
md5:0b9a6628ecc2db6b7097e6cd67e9155e
67.3 kB Download
10
20
views
downloads
All versions This version
Views 1010
Downloads 2020
Data volume 764.7 kB764.7 kB
Unique views 99
Unique downloads 11

Share

Cite as