当前位置: 首页 > 后端技术 > Python

Tuoduantecdat-python图工具中基于随机块模型的动态网络社区检测

时间:2023-03-25 22:21:22 Python

原始来源:http://tecdat.cn/?p=23这是《政治博客圈与2004年美国大选》网络中的一篇政治博客图,但边束是使用随机块模型确定的(注意:下图与图相同(即相同的布局和数据))。5在Tiago的论文中-我只是在上面放了一个黑色背景。边缘配色方案与Adamic和Glance的原论文相同,即每个节点对应一个博客URL,颜色反映政治倾向,红色代表保守派,蓝色代表自由派。橙色边缘从自由派博主到保守派博主,紫色边缘从保守派到自由派(参见Adamic和Glance中的图1)。配色方案与原论文相同,即每个节点对应一个博客URL,颜色反映政治倾向,红色代表保守派,蓝色代表自由派。橙色边缘从自由派博主到保守派博主,紫色边缘从保守派到自由派(参见Adamic和Glance中的图1)。绘制了所有1,490个节点和19,090条边。每个博客的url都绘制在每个节点旁边,这是一个特写:importgraph_tool.allasgtimportmathg=gt.collection.data["polblogs"]#http://www2.scedu.unibo。it/roversi/SocioNet/AdamicGlanceBlogWWW.pdf让颜色正确需要一些调整:Republican,2->Democrat\nred\_blue\_map={1:(1,0,0,1),0:(0,0,1,1)}\nplot\_color=g.new\_vertex\_property('vector')\ng.vertex\_properties['plot\_color']=plot\_color\nforving.vertices():\nplot\_color[v]=red\_blue\_map[g.vertex\_properties['value'][v]]","classes":[]}"data-cke-widget-upcasted="1"数据-cke-widget-keep-attr="0"data-widget="codeSnippet">#use1->Republican,2->Democratred_blue_map={1:(1,0,0,1),0:(0,0,1,1)}plot_color=g.new_vertex_property('向量')g.vertex_properties['plot_color']=plot_colorforving.vertices():plot_color[v]=red_blue_map[g.vertex_properties['value'][v]]对于使用分层边缘捆绑算法,我们首先需要进行某种聚类。一种明显的方法是根据每个节点的政治派别为每个节点分配一个集群:这些集群用于形成一个层次结构,使人们可以轻松确定标准的树布局(如下图所示)。通过沿树插值绘制分层边束。这是上图使用的树:最后,我们设置文本旋转并保存图形:0:\ntext\_rot[v]=math.atan(pos[v][1]/pos[v][0])\nelse:\ntext\_rot[v]=math.pi+math.atan(pos[v][1]/pos[v][0])\n\ngt.graph\_draw(g,pos=pos,\nvertex\_size=10,\nvertex\_color=g.vertex\_properties['plot\_color'],\nvertex\_fill\_color=g.vertex\_properties['plot\_color'],\nedge\_control\_points=cts,\nvertex\_text=g.vertex\_properties['label'],\nvertex\_text\_rotation=g.vertex\_properties['text\_rot'],\n顶点\_text\_position=1,\nvertex\_font\_size=9,\nedge\_color=g.edge\_properties['edge\_color'],\nvertex\_anchor=0,\nbg\_color=[0,0,0,1],\noutput\_size=[4024,4024],\noutput='polblogs.png')","classes":[]}"data-cke-widget-upcasted=“1”data-cke-widget-keep-attr="0"data-widget="codeSnippet">#labelstext_rot=g.new_vertex_property('double')g.vertex_properties['text_rot']=text_rotforving.vertices():ifpos[v][0]>0:text_rot[v]=math.atan(pos[v][1]/pos[v][0])else:text_rot[v]=math.pi+math.atan(位置[v][1]/pos[v][0])gt.graph_draw(g,pos=pos,vertex_size=10,vertex_color=g.vertex_properties['plot_color'],vertex_fill_color=g.vertex_properties['plot_color'],edge_control_points=cts,vertex_text=g.vertex_properties['label'],vertex_text_rotation=g.vertex_properties['text_rot'],vertex_text_position=1,vertex_font_size=9,edge_color=g.edge_properties['edge_color'],vertex_anchor=0,bg_color=[0,0,0,1],output_size=[4024,4024],output='polblogs.png')