I'm working on a project wherein I need to dynamically refresh my graph layout, getting a image for each step of the layout refresh. The problem is: I can't get the continuity of frames we see in this http://graph-tool.skewed.de/static/doc/demos/animation.html#dynamic-layout. My video seems more like a stopmotion: http://www.mediafire.com/watch/4de67mc7nanu2ox/output4.avi This problem seems to arise from 2 facts: 1) the way I'm refreshing the graph - since I'm simply generating another graph (which is not a bigger problem because the model I'm using is deterministic); 2) max_iter = 2, instead of 1. But EVEN when I set it to 1, I get no continuity from one frame to another. I think it will be useful some parts of the algorithm I'm using, but I don't know how comprehensible it is: #main function: makes graphs and save them as images; also save some useful
data def graph(a, b, BIN): global prop, init_foot, ibin, fbin b=0 while BIN > fbin: print 'while' foot = (init_foot)*(10**a) BIN = ibin - foot*b g.clear_edges() for i in g.vertices(): xj = abs(prop[i])+abs((BIN-1)*dP) match = gt.find_vertex_range(g,prop,(abs(prop[i]+0.0000000001), xj)) val = np.array([g.vertex_index[i], len(match), prop[i], BIN]) exv.append(val) for j in xrange(0,len(match)): e = g.add_edge(g.vertex_index[i], match[j]) Rij = (dP - abs(prop[i] - prop[match[j]]))/dP R[e] = Rij
posa = g.vp['pos'] pos = gt.sfdp_layout(g, pos=posa, max_iter=2) gt.graph_draw(g, pos=pos, vertex_fill_color=Mag,vertex_size=prop_to_size(Mass, mi=3, ma=9.5, log=False, power=6), fit_view=True, output = '%03d.png' % b) #some data I`ll need for analysis comp, hist = gt.label_components(g, directed=False) compo = len(set(comp.a)) components.append(compo) bins.append(BIN) numed.append(g.num_edges()) print g.num_edges(), compo, BIN diam1, end = gt.pseudo_diameter(g) diam.append(diam1) gg = g.copy() graphs.append(gg) deg = g.degree_property_map('out', weight=None) degree.append(deg.a) lclstr = gt.local_clustering(g, undirected=True) gclstr = gt.global_clustering(g) lclust.append(lclstr.a) gclust.append(gclstr) #the cases the images start to get too big to compute efficiently if b > 1 and components[b] < 350: a += 0.1 if b > 1 and components[b] < 150: a += 0.3
#pace b+=1 #pace variation a +=0.1
return components, bins, exv, graphs
On 12/26/2013 07:29 PM, Igor Strozzi wrote:
I'm working on a project wherein I need to dynamically refresh my graph layout, getting a image for each step of the layout refresh. The problem is: I can't get the continuity of frames we see in this http://graph-tool.skewed.de/static/doc/demos/animation.html#dynamic-layout. My video seems more like a stopmotion: http://www.mediafire.com/watch/4de67mc7nanu2ox/output4.avi
It seems to me that either you are repeating frames, or the layout is not changing from frame to frame... Whenever asking for help in this list it is always best to try to reduce any problem you are observing to a minimal but complete example, so that others may have a chance of understanding what the problem is. Cheers, Tiago -- Tiago de Paula Peixoto <tiago@skewed.de>
participants (2)
-
Igor Strozzi -
Tiago de Paula Peixoto