Plotting Graphs
LightGraphs.jl integrates with several other Julia packages for plotting. Here are a few examples.
GraphLayout.jl
This excellent graph visualization package can be used with LightGraphs.jl as follows:
julia> g = WheelGraph(10); am = Matrix(adjacency_matrix(g))
julia> loc_x, loc_y = layout_spring_adj(am)
julia> draw_layout_adj(am, loc_x, loc_y, filename="wheel10.svg")
producing a graph like this:
TikzGraphs.jl
Another nice graph visualization package. (TikzPictures.jl required to render/save):
julia> g = WheelGraph(10); t = plot(g)
julia> save(SVG("wheel10.svg"), t)
producing a graph like this:
GraphPlot.jl
Another graph visualization package that is very simple to use. Compose.jl is required for most rendering functionality:
julia> using GraphPlot, Compose
julia> g = WheelGraph(10)
julia> draw(PNG("/tmp/wheel10.png", 16cm, 16cm), gplot(g))
NetworkViz.jl
NetworkViz.jl is tightly coupled with LightGraphs.jl. Graphs can be visualized in 2D as well as 3D using ThreeJS.jl and Escher.jl.
#Run this code in Escher
using NetworkViz
using LightGraphs
main(window) = begin
push!(window.assets, "widgets")
push!(window.assets,("ThreeJS","threejs"))
g = CompleteGraph(10)
drawGraph(g)
end
The above code produces the following output: