Hi,

I copy pasted the code from the link you sent me and change to the following code

#! /usr/bin/env python

from graph_tool.all
import *
from numpy.random
import *
from numpy.linalg
import norm
import sys, os, os.path

seed(42)
seed_rng(42)

from gi.repository
import Gtk, Gdk, GdkPixbuf, GObject, GLib

g = Graph()

step = 0.005# move step
K = 0.5# preferred edge length

pos = sfdp_layout(g, K = K)# initial layout positions

win = GraphWindow(g, pos, geometry = (500, 400))

edges = [(1, 2), (3, 4), (3, 2), (3, 5), (3, 6), (2, 5)]
count = 0

def update_state():
  global count

sfdp_layout(g, pos = pos, K = K, init_step = step, max_iter = 1)

# my code
for each in edges:
  g.add_edge(each[0], each[1])

if count > 0 and count % 1000 == 0:
  win.graph.fit_to_window(ink = True)

count += 1
win.graph.regenerate_surface()
win.graph.queue_draw()

return True

cid = GLib.idle_add(update_state)
win.connect("delete_event", Gtk.main_quit)

win.show_all()
Gtk.main()

This doesn't seem to work I get  RuntimeError: invalid matrix (not invertible)
Any idea? it looks to me this one line g = random_graph(150, lambda: 1 + poisson(5), directed=False)
makes a difference? But I want to create my own graph like the code above.

Also what does idle_add do? it calls update whenever it is idle? which means it redraws whenever it is idle?

Thanks!

On Thu, Feb 20, 2020 at 11:18 PM Tiago de Paula Peixoto <tiago@skewed.de> wrote:
Am 21.02.20 um 04:26 schrieb kant kodali:
> Hi All,
>
> I am new to graph-tool and I am trying to figure out how to create and
> display graphs dynamically by which I mean the following.
>
> To simplify the problem Lets say I have the following edges
>
> (1,2)
> (3,4)
> (3,7)
> (3, 8)
> (2, 3)
>
> I don't want to construct the graph with all the edges at once. instead
> I want to add or delete an edge one by one and render/display that
> immediately  such that I can show the user how the graph is evolving
> after each edge. Think of it more like a stream of edges that can be
> either added or deleted.
>
> Please let me know if you need more information on the question.
> otherwise, I hope to hear how this can be achieved using graph-tool?

There is an example of how to do this in the documentation:

https://graph-tool.skewed.de/static/doc/demos/animation/animation.html#dynamic-layout


--
Tiago de Paula Peixoto <tiago@skewed.de>

_______________________________________________
graph-tool mailing list
graph-tool@skewed.de
https://lists.skewed.de/mailman/listinfo/graph-tool