Skip to content

Commit ad5355f

Browse files
Merge pull request #72 from danielskatz/patch-1
Patch 1
2 parents 68c73f6 + 4a96d3a commit ad5355f

File tree

2 files changed

+7
-7
lines changed

2 files changed

+7
-7
lines changed

publication/paper.bib

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
@inproceedings{Hagberg:2008,
22
address = {Pasadena, CA USA},
33
author = {Hagberg, Aric A and Schult, Daniel A and Swart, Pieter J},
4-
booktitle = {Proceedings of the 7th Python in Science Conference},
4+
booktitle = {Proceedings of the 7th {P}ython in Science Conference},
55
editor = {Varoquaux, Ga{\"{e}}l and Vaught, Travis and Millman, Jarrod},
66
pages = {11--15},
77
title = {{Exploring Network Structure, Dynamics, and Function using NetworkX}},
@@ -14,10 +14,10 @@ @article{Csardi:2006
1414
volume = {Complex Systems},
1515
pages = {1695},
1616
year = {2006},
17-
url = {http://igraph.sf.net},
17+
url = {http://igraph.org},
1818
}
1919
@article{Peixoto:2014,
20-
title = {The graph-tool python library},
20+
title = {The graph-tool {P}ython library},
2121
url = {http://figshare.com/articles/graph_tool/1164194},
2222
doi = {10.6084/m9.figshare.1164194},
2323
journal = {figshare},

publication/paper.md

+4-4
Original file line numberDiff line numberDiff line change
@@ -23,14 +23,14 @@ bibliography: paper.bib
2323

2424
# Statement of need
2525

26-
The empirical study and scholarly analysis of networks have increased manifold in recent decades, fuelled by the new prominence of network structures in our lives (the web, social networks, artificial neural networks, ecological networks, etc.) and the data available on them. While there are several comprehensive Python libraries for network analysis such as NetworkX [@Hagberg:2008], igraph [@Csardi:2006], and graph-tool [@Peixoto:2014], their inbuilt visualisation capabilities lag behind specialised software solutions such as Graphviz [@Ellson:2002], Cytoscape [@Shannon:2003], or Gephi [@Bastian:2009]. However, although Python bindings for these applications exist in the form of PyGraphviz, py4cytoscape, and GephiStreamer, respectively, their outputs are not manipulable Python objects, which restricts customisation, limits their extensibility, and prevents a seamless integration within a wider Python application.
26+
The empirical study and scholarly analysis of networks have increased manifold in recent decades, fuelled by the new prominence of network structures in our lives (the web, social networks, artificial neural networks, ecological networks, etc.) and the data available on them. While there are several comprehensive Python libraries for network analysis such as NetworkX [@Hagberg:2008], igraph [@Csardi:2006], and graph-tool [@Peixoto:2014], their inbuilt visualisation capabilities lag behind specialised software solutions such as Graphviz [@Ellson:2002], Cytoscape [@Shannon:2003], and Gephi [@Bastian:2009]. However, although Python bindings for these applications exist in the form of PyGraphviz, py4cytoscape, and GephiStreamer, respectively, their outputs are not manipulable Python objects, which restricts customisation, limits their extensibility, and prevents a seamless integration within a wider Python application.
2727

2828
# Summary
2929

3030
Netgraph is a Python library that aims to complement the existing network analysis libraries with publication-quality visualisations within the Python ecosystem. To facilitate a seamless integration, Netgraph supports a variety of input formats, including NetworkX, igraph, and graph-tool Graph objects. At the time of writing, Netgraph provides the following node layout algorithms:
3131

32-
- the Fruchterman-Reingold algorithm a.k.a. the "spring" layout,
33-
- the Sugiyama algorithm a.k.a. the "dot" layout for directed, acyclic graphs,
32+
- the Fruchterman-Reingold algorithm, a.k.a. the "spring" layout,
33+
- the Sugiyama algorithm, a.k.a. the "dot" layout for directed, acyclic graphs,
3434
- a radial tree layout for directed, acyclic graphs,
3535
- a circular node layout (with optional edge crossing reduction),
3636
- a bipartite node layout for bipartite graphs (with optional edge crossing reduction),
@@ -135,7 +135,7 @@ fig.canvas.draw()
135135

136136
# Key Design Decisions
137137

138-
The creation of Netgraph was motivated by the desire to make high-quality, easily customisable, and reproducible network visualisations, whilst maintaining an extensible code base. To that end, a key design decision was to have a single reference frame for all node artist and edge artist attributes that determine their extent (e.g. in the case of a circular node artist, its position and its radius).
138+
The creation of Netgraph was motivated by the desire to make high-quality, easily customisable, and reproducible network visualisations, whilst maintaining an extensible code base. To that end, a key design decision was to have a single reference frame for all node artist and edge artist attributes that determine their extent (e.g., in the case of a circular node artist, its position and its radius).
139139

140140
Good data visualisations are both accurate and legible. The legibility of a visualisation is influenced predominantly by the size of the plot elements, and occlusions between them. However, there is often tension between these two requirements, as larger plot elements are more visible but also more likely to cause overlaps with other plot elements. Most data visualisation tools focus on accuracy and visibility. To that end, they operate in two reference frames: a data-derived reference frame and a display-derived reference frame. For example, in a standard line-plot, the data-derived reference frame determines the x and y values of the line. The thickness of the line, however, scales with the size of the display, and its width (measured in pixels) remains constant across different figure sizes and aspect ratios. Having two reference frames ensures that the line (1) is an accurate representation of the data, and (2) is visible and discernible independent of figure dimensions. The trade-off of this setup is that (1) the precise extents of plot elements can only be computed after the figure is initialised, and (2) occlusions are not managed and hence common, for example, if multiple lines are plotted in the same figure. Nevertheless, most network visualisation tools follow this standard. For example, NetworkX specifies node positions and edge paths in data coordinates, but uses display units for node sizes and edge widths.
141141

0 commit comments

Comments
 (0)