2 deleted 55 characters in body
source | link

Not quite sure how this could handle with very large amounts of data, but maybe this is something of use.

The following code I think could easily be adapted to take an input stream efficiently. Essentially I predesignate each vertices position using RandomReal, but I bet there's a way to make things look less erratic despite an arbitrary amount of vertices being allowed.

Options[GraphPlotDynamic] = {VertexRenderingFunction -> (Point[#1] &)};

GraphPlotDynamic[lis:{{_, _, _, _}..}, OptionsPattern[]] := 
 Module[{pos = Partition[RandomReal[{0, 1}, 2 Length[lis]], 2], 
   posHash, chosenEdges, chosenVerts, vRender},

  vRender = OptionValue[VertexRenderingFunction];

  Set[posHash[#], pos[[#RandomReal[{0, +1}, 1]]]2]] & /@ Range[0, Length[lis] - 1];
  posHash[{args__}] := posHash /@ {args};

  Manipulate[
   chosenEdges = Select[dynamicGraph, #[[3]] <= t <= #[[4]] &][[All, 1 ;; 2]];
   chosenVerts = vRender[posHash[#], #] & /@ Union[Flatten[chosenEdges]];

   Graphics[{
     Red, Line[posHash[##]] & /@ chosenEdges,
     Black, chosenVerts
   }, PlotRange -> {{0, 1}, {0, 1}}],

   {t, 0, 31, 1}]

  ]

And here's your example (t=24, t=25):

GraphPlotDynamic[dynamicGraph, VertexRenderingFunction -> (Style[Text[#2, #1], Large] &)]

t=24, t=25

Not quite sure how this could handle with very large amounts of data, but maybe this is something of use.

The following code I think could easily be adapted to take an input stream efficiently. Essentially I predesignate each vertices position using RandomReal, but I bet there's a way to make things look less erratic despite an arbitrary amount of vertices being allowed.

Options[GraphPlotDynamic] = {VertexRenderingFunction -> (Point[#1] &)};

GraphPlotDynamic[lis:{{_, _, _, _}..}, OptionsPattern[]] := 
 Module[{pos = Partition[RandomReal[{0, 1}, 2 Length[lis]], 2], 
   posHash, chosenEdges, chosenVerts, vRender},

  vRender = OptionValue[VertexRenderingFunction];

  Set[posHash[#], pos[[# + 1]]] & /@ Range[0, Length[lis] - 1];
  posHash[{args__}] := posHash /@ {args};

  Manipulate[
   chosenEdges = Select[dynamicGraph, #[[3]] <= t <= #[[4]] &][[All, 1 ;; 2]];
   chosenVerts = vRender[posHash[#], #] & /@ Union[Flatten[chosenEdges]];

   Graphics[{
     Red, Line[posHash[##]] & /@ chosenEdges,
     Black, chosenVerts
   }, PlotRange -> {{0, 1}, {0, 1}}],

   {t, 0, 31, 1}]

  ]

And here's your example (t=24, t=25):

GraphPlotDynamic[dynamicGraph, VertexRenderingFunction -> (Style[Text[#2, #1], Large] &)]

t=24, t=25

Not quite sure how this could handle with very large amounts of data, but maybe this is something of use.

The following code I think could easily be adapted to take an input stream efficiently. Essentially I predesignate each vertices position using RandomReal, but I bet there's a way to make things look less erratic despite an arbitrary amount of vertices being allowed.

Options[GraphPlotDynamic] = {VertexRenderingFunction -> (Point[#1] &)};

GraphPlotDynamic[lis:{{_, _, _, _}..}, OptionsPattern[]] := 
 Module[{posHash, chosenEdges, chosenVerts, vRender},

  vRender = OptionValue[VertexRenderingFunction];

  Set[posHash[#], RandomReal[{0, 1}, 2]] & /@ Range[0, Length[lis] - 1];
  posHash[{args__}] := posHash /@ {args};

  Manipulate[
   chosenEdges = Select[dynamicGraph, #[[3]] <= t <= #[[4]] &][[All, 1 ;; 2]];
   chosenVerts = vRender[posHash[#], #] & /@ Union[Flatten[chosenEdges]];

   Graphics[{
     Red, Line[posHash[##]] & /@ chosenEdges,
     Black, chosenVerts
   }, PlotRange -> {{0, 1}, {0, 1}}],

   {t, 0, 31, 1}]

  ]

And here's your example (t=24, t=25):

GraphPlotDynamic[dynamicGraph, VertexRenderingFunction -> (Style[Text[#2, #1], Large] &)]

t=24, t=25

1
source | link

Not quite sure how this could handle with very large amounts of data, but maybe this is something of use.

The following code I think could easily be adapted to take an input stream efficiently. Essentially I predesignate each vertices position using RandomReal, but I bet there's a way to make things look less erratic despite an arbitrary amount of vertices being allowed.

Options[GraphPlotDynamic] = {VertexRenderingFunction -> (Point[#1] &)};

GraphPlotDynamic[lis:{{_, _, _, _}..}, OptionsPattern[]] := 
 Module[{pos = Partition[RandomReal[{0, 1}, 2 Length[lis]], 2], 
   posHash, chosenEdges, chosenVerts, vRender},

  vRender = OptionValue[VertexRenderingFunction];

  Set[posHash[#], pos[[# + 1]]] & /@ Range[0, Length[lis] - 1];
  posHash[{args__}] := posHash /@ {args};

  Manipulate[
   chosenEdges = Select[dynamicGraph, #[[3]] <= t <= #[[4]] &][[All, 1 ;; 2]];
   chosenVerts = vRender[posHash[#], #] & /@ Union[Flatten[chosenEdges]];

   Graphics[{
     Red, Line[posHash[##]] & /@ chosenEdges,
     Black, chosenVerts
   }, PlotRange -> {{0, 1}, {0, 1}}],

   {t, 0, 31, 1}]

  ]

And here's your example (t=24, t=25):

GraphPlotDynamic[dynamicGraph, VertexRenderingFunction -> (Style[Text[#2, #1], Large] &)]

t=24, t=25