Network Graphs in F#

How to make Network Graphs in Python with Plotly. One examples of a network graph with NetworkX


Plotly is known for its graphing libraries, but it's also a broader ecosystem for building interactive data apps, AI data analysis tools, and deploying and hosting Dash apps. Explore the full set of tools and platforms designed to help turn data into action. Discover Plotly.

Note: We are retiring documentation for R, MATLAB, Julia, and F#. Learn more about this change here.

In [1]:
#r "nuget: Plotly.NET,  2.0.0-preview.8"
#r "nuget: Plotly.NET.Interactive,  2.0.0-preview.8"
Installed Packages
  • Plotly.NET, 2.0.0-preview.8
  • Plotly.NET.Interactive, 2.0.0-preview.8

Loading extensions from Plotly.NET.Interactive.dll

Added Kernel Extension including formatters for Plotly.NET charts.

Create Nodes

In [2]:
//open QuickGraph
open Plotly.NET
open Plotly.NET.LayoutObjects


let x = [2;3;5;1;10;3]
let y = [12;14;7;2;15;4]

Chart.Point(x,y)
|> Chart.withMarkerStyle(Size=10)
|> Chart.withXAxis(LinearAxis.init(ShowTickLabels=false,ShowGrid=false,ShowLine=false))
|> Chart.withYAxis(LinearAxis.init(ShowTickLabels=false,ShowGrid=false,ShowLine=false))
Out[2]:

Create Edges

In [3]:
open System

let rand = new Random()

let x = [for i in 0..100 -> rand.Next(0,100) ]
let y = [for i in x -> rand.Next(0,100) ]

let edges = [for i in x ->  let i = rand.Next(0,100)
                            let j = rand.Next(0,100)                            
                            Shape.init(StyleParam.ShapeType.Line,X0=x.[i],X1=x.[j],Y0=y.[i],Y1=y.[j],Line=Line.init(Color=Color.fromString "#888",Width=0.5))]


Chart.Point(x,y)
|> Chart.withMarkerStyle(Size=10)
|> Chart.withXAxis(LinearAxis.init(ShowTickLabels=false,ShowGrid=false,ShowLine=false,ZeroLine=false))
|> Chart.withYAxis(LinearAxis.init(ShowTickLabels=false,ShowGrid=false,ShowLine=false,ZeroLine=false))
|> Chart.withShapes edges
Out[3]: