def anim_gt(self): self.win = gt.GraphWindow(self.g, self.pos, geometry=(1000, 500), vprops=self.vert_prop, eprops=self.edge_prop) # Bind the function above as an 'idle' callback. cid = GObject.idle_add(self.anim_update) self.win.connect("delete_event", Gtk.main_quit) self.win.show_all() Gtk.main()
def draw_cluster_interactive(graph, force_draw_edge=False): pos = gt.sfdp_layout(graph, p=1) if not force_draw_edge and graph.num_edges() > 10000: graph = gt.GraphView(graph, efilt=graph.new_ep('bool', val=False)) logging.info( 'Number of edges exceeds 10000, edges are not drawn to ensure the stability.' ) fill_color = _fill_vertex_color(graph) win = gt.GraphWindow(graph, pos, (800, 600), vertex_size=9, vertex_fill_color=fill_color, bg_color=(1, 1, 1, 1), key_press_callback=_Callback()) win.connect('destroy', lambda _: matplotlib.pyplot.close('all')) win.show_all() gt.graph_draw(graph, pos, vertex_size=9, vertex_fill_color=fill_color, bg_color=(1, 1, 1, 1), key_press_callback=_Callback(), window=win) return
## pos = gt.sfdp_layout(ug, pos=ug.vp.pos, K=K) ## ## # offscreen = sys.argv[1] == "offscreen" if len(sys.argv) > 1 else False # This creates a GTK+ window with the initial graph layout if not offscreen: win = gt.GraphWindow( ug, pos, geometry=(800, 800), vertex_fill_color=ug.vp.lum, vertex_size=gt.prop_to_size(ug.vp.mass, mi=2, ma=10, log=False, power=2), ) else: win = Gtk.OffscreenWindow() win.set_default_size(800, 800) win.graph = gt.GraphWidget( ug, pos, vertex_fill_color=ug.vp.lum, vertex_size=gt.prop_to_size(ug.vp.mass, mi=2, ma=10,
print('asdasd', g.num_vertices()) vsize = g.new_vertex_property("double") deg = g.degree_property_map("total") vsize = gt.prop_to_size(g.degree_property_map("total")) pos = gt.sfdp_layout(g, eweight=g.ep['weight'], groups=g.vp['comm_infomap'], init_step=0.005, max_iter=1) if not offscreen: win = gt.GraphWindow(g, pos, geometry=(500, 400), edge_color=[0.6, 0.6, 0.6, 1], vorder=visited, vertex_size=vsize, vertex_fill_color=g.vp['comm_infomap'], vertex_halo=mark, vertex_halo_color=[0.8, 0, 0, 0.6]) else: win = Gtk.OffscreenWindow() win.set_default_size(500, 400) win.graph = gt.GraphWidget(g, pos, edge_color=[0.6, 0.6, 0.6, 1], vorder=visited, vertex_size=vsize, vertex_fill_color=g.vp['comm_infomap'], vertex_halo=mark, vertex_halo_color=[0.8, 0, 0, 0.6])
# Newly infected nodes will be highlighted in red mark = g.new_vertex_property("bool") visited = g.new_vertex_property("bool") mark.a = False visited.a = False # This creates a GTK+ window with the initial graph layout time = -1 max_time = np.max(list(order)) width = gt.prop_to_size(g.ep['weight'], ma=.1) if not offscreen: win = gt.GraphWindow(g, pos, geometry=(500, 400), edge_color=[0.6, 0.6, 0.6, 1], vorder=visited, vertex_fill_color=state, vertex_halo=mark, vertex_halo_color=[0.8, 0, 0, 0.6]) print('asdasd', g.num_vertices()) else: win = Gtk.OffscreenWindow() win.set_default_size(500, 400) win.graph = gt.GraphWidget(g, pos, edge_color=[0.6, 0.6, 0.6, 1], vorder=visited, vertex_fill_color=state, vertex_halo=mark, vertex_halo_color=[0.8, 0, 0, 0.6]) win.add(win.graph)
g, pos = Initial_Networks(File) Cha = g.vertex_properties['is_cha'] # Gtk window initialization offscreen = sys.argv[1] == 'offscreen' if len(sys.argv) > 1 else False offscreen = True max_count = 220 # refresh screen internal time if offscreen and not os.path.exists('./frames'): os.mkdir('./frames') if not offscreen: # TODO: modify the graph to squares and no edges win = gt.GraphWindow(g, pos, geometry=(1024, 800), vertex_shape='hexagon', vertex_size=10, vertex_anchor=0, vertex_pen_width=0, edge_color=[1, 1, 1, 1], vertex_fill_color=Cha) else: count = 0 win = Gtk.OffscreenWindow() win.set_default_size(1024, 1024) win.graph = gt.GraphWidget(g, pos, vertex_shape='hexagon', vertex_size=10, vertex_anchor=0, vertex_pen_width=0, edge_color=[1, 1, 1, 1],
pos = g.own_property(tpos) ###### Create interactive window ##### win = gt.GraphWindow(g, geometry =(500,400), vertex_text_position="centered", vertex_text=g.vertex_properties["label"], vertex_text_color = "white", vertex_font_size=14, vertex_anchor=0, vertex_aspect=1, vertex_shape = "square", vertex_fill_color = g.vertex_properties["vcolour"], vertex_size = 10, fit_view = False, # edge_color=g.edge_properties["colour"], # edge_pen_width=g.edge_properties["thickness"], edge_end_marker="none", edge_pen_width=0.2, edge_color="white", bg_color=[0,0,0,1], output_size=[500,400], output='UK_ONLY_RELATIONSHIPS.png', pos=pos, edge_control_points=cts) win.show_all() Gtk.main()
# TODO: network initialization and position acquisition g, pos, h = Initial_Networks(File) # TODO: Gtk window initialization offscreen = sys.argv[1] == 'offscreen' if len(sys.argv) > 1 else False #offscreen = True max_count = 40 # refresh screen internal time if offscreen and not os.path.exists('./frames'): os.mkdir('./frames') if not offscreen: win = gt.GraphWindow(g, pos, geometry=(1024, 800), edge_color=[0.6, 0.6, 0.6, 1], vertex_fill_color=VertexState, vertex_halo=mutate_tag, vertex_halo_size=2, vertex_halo_color=Yellow) else: count = 0 win = Gtk.OffscreenWindow() win.set_default_size(1024, 800) win.graph = gt.GraphWidget(g, pos, edge_color=[0.6, 0.6, 0.6, 1], vertex_fill_color=VertexState, vertex_halo=mutate_tag, vertex_halo_size=2, vertex_halo_color=Yellow) win.add(win.graph)