XPlot


D3 Network Example

1: 
2: 
3: 
4: 
5: 
6: 
let edges = 
    [   "A", "B"
        "B", "C"
        "C", "A"
        "A", "D"
        "B", "E"]
 1: 
 2: 
 3: 
 4: 
 5: 
 6: 
 7: 
 8: 
 9: 
10: 
11: 
12: 
13: 
14: 
15: 
16: 
17: 
edges
|> Chart.ForceLayout
|> Chart.WithHeight 300
|> Chart.WithWidth 400
|> Chart.WithGravity 0.5
|> Chart.WithCharge -2000.0
|> Chart.WithEdgeOptions (fun e ->
    let pr = e.From.Name, e.To.Name
    match pr with 
    | "A","B" -> { defaultEdgeOptions with Distance = 200.0 }
    | "A","D" -> { defaultEdgeOptions with StrokeWidth = 4.5 } 
    | _ -> {defaultEdgeOptions with Distance = 100.0})
|> Chart.WithNodeOptions(fun n ->
    match n.Name with
    | "A" -> {defaultNodeOptions with Fill = {Red = 150uy; Green = 150uy; Blue=195uy}} 
    | "B" -> {defaultNodeOptions with RadiusScale=1.5; Fill = {Red = 150uy; Green = 195uy; Blue=150uy}}
    | _ -> defaultNodeOptions)
D3 Chart
namespace XPlot
namespace XPlot.D3
val edges : (string * string) list
type Chart =
  static member Create : edges:seq<string * string> -> ForceLayoutChart
  static member Create : nodes:seq<Node> -> ForceLayoutChart
  static member ForceLayout : edges:seq<string * string> -> ForceLayoutChart
  static member ForceLayout : nodes:seq<Node> -> ForceLayoutChart
  static member Show : chart:ForceLayoutChart -> unit
  static member WithCharge : charge:float -> chart:ForceLayoutChart -> ForceLayoutChart
  static member WithEdgeOptions : edgeOptions:(Edge -> EdgeOptions) -> chart:ForceLayoutChart -> ForceLayoutChart
  static member WithGravity : gravity:float -> chart:ForceLayoutChart -> ForceLayoutChart
  static member WithHeight : height:int -> chart:ForceLayoutChart -> ForceLayoutChart
  static member WithNodeOptions : nodeOptions:(Node -> NodeOptions) -> chart:ForceLayoutChart -> ForceLayoutChart
  ...
static member Chart.ForceLayout : edges:seq<string * string> -> ForceLayoutChart
static member Chart.ForceLayout : nodes:seq<Node> -> ForceLayoutChart
static member Chart.WithHeight : height:int -> chart:ForceLayoutChart -> ForceLayoutChart
static member Chart.WithWidth : width:int -> chart:ForceLayoutChart -> ForceLayoutChart
static member Chart.WithGravity : gravity:float -> chart:ForceLayoutChart -> ForceLayoutChart
static member Chart.WithCharge : charge:float -> chart:ForceLayoutChart -> ForceLayoutChart
static member Chart.WithEdgeOptions : edgeOptions:(Edge -> EdgeOptions) -> chart:ForceLayoutChart -> ForceLayoutChart
val e : Edge
val pr : string * string
Edge.From: Node
Node.Name: string
Edge.To: Node
val defaultEdgeOptions : EdgeOptions
static member Chart.WithNodeOptions : nodeOptions:(Node -> NodeOptions) -> chart:ForceLayoutChart -> ForceLayoutChart
val n : Node
val defaultNodeOptions : NodeOptions
Fork me on GitHub