Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?


Failed to load latest commit information.
Latest commit message
Commit time


Lifecycle: maturing GitHub tag R-CMD-check AppVeyor Build Status Coverage Status (codecov) CRAN status CRAN checks (worst) CRAN total downloads

This package allows to pass network objects to ggplot2 and provides geometries to plot their elements.

Get started

You can install the released version of ggnetwork from CRAN with:


And the development version from GitHub with:

# install.packages("remotes")

The ggnetwork package depends on R 3.5+ and on ggplot2 version 2.0.0+.


For further examples that use ggnetwork with other packages to produce animated graphs, see James Curley’s slides on “Interactive and Dynamic Network Visualization in R” (2016). For even more options, see Katherine Ognyanova’s tutorial “Network visualization with R (2019), and David Schoch’s guide “Network Visualizations in R using ggraph and graphlayouts” (2019).

Getting help

If you encounter a clear bug, please file a minimal reproducible example on GitHub.

For questions and other discussion, please contact the package maintainer, or ask other users on Stack Overflow.


You can get a citation for the package from R:


See also

The ggnetwork package was written within a larger development effort around network visualization with ggplot2, on which you can read the following article:

Sam Tyner, François Briatte and Heike Hofmann, “Network Visualization with ggplot2,” The R Journal 9(1): 27–59, 2017.

The article also covers the related packages geomnet and ggnet. It does not cover the more recent ggraph, graphlayouts and tidygraph, although you should turn to those if you need a highly extensive way to build and plot ‘tidy’ networks with ggplot2.


Thanks to @achmurzy, @andrewd789, @ArtemSokolov, @aterhorst, @Edouard-Legoupil, @emillykkejensen, @EvanUp, @evinhas, @ferroao, @FinScience, @ghost, @instantkaffee, @jalapic, @jcfisher, @jfaganUK, @kippjohnson, @koheiw, @komalsrathi, @mbojan, @mcanouil, @mgagliol, @mhairi, @minimaxir, @mkarikom, @nick-youngblut, @pinguinjay, @SantiFilippo, @sciabolazza, @sctyner, @trinker, @zachcp and two anonymous R Journal reviewers. @heike and @ethen8181 also helped with the tricky issue of having arrows on directed edges, while @sumtxt inspired this package as well as its predecessor, the ggnet package, which also benefitted from discussions with @pedroj and Bertrand Sudre.

Please note that this project is released with a Contributor Code of Conduct.
By participating in this project you agree to abide by its terms.