Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Python可视化社交网络_Python_Graph_Social Graph - Fatal编程技术网

如何使用Python可视化社交网络

如何使用Python可视化社交网络,python,graph,social-graph,Python,Graph,Social Graph,我需要定义一个,分析它,然后画出来。我既可以手工绘制,也可以手工分析(计算各种指标)。但我不想重新发明轮子 我曾尝试使用matplotlib,但我需要以交互方式使用它,并在几行中告诉它如何加载数据,然后调用一个渲染函数,该函数将图形渲染为SVG 如何以所述方式可视化社交网络 是一个非常强大和灵活的Python库,用于处理网络图。定向和无向连接可用于连接节点。可以通过添加节点和连接节点的边来构建网络,或者只需列出边对(将自动创建未定义的节点)。创建节点(和边)后,可以使用任意标签对其进行注释 尽管

我需要定义一个,分析它,然后画出来。我既可以手工绘制,也可以手工分析(计算各种指标)。但我不想重新发明轮子

我曾尝试使用matplotlib,但我需要以交互方式使用它,并在几行中告诉它如何加载数据,然后调用一个渲染函数,该函数将图形渲染为SVG

如何以所述方式可视化社交网络

是一个非常强大和灵活的Python库,用于处理网络图。定向和无向连接可用于连接节点。可以通过添加节点和连接节点的边来构建网络,或者只需列出边对(将自动创建未定义的节点)。创建节点(和边)后,可以使用任意标签对其进行注释

尽管networkx可用于可视化网络(请参阅文档),但您可能更喜欢使用网络可视化应用程序,如Gephi(可从获得)。networkx支持多种导入和导出格式。如果使用GraphML等格式导出网络,则可以轻松地将导出的文件加载到Gephi中并在其中进行可视化

import networkx as nx
G=nx.Graph()
G.add_edges_from([(1,2),(1,3),(1,4),(3,4)])
G
>>> <networkx.classes.graph.Graph object at 0x128a930>
G.nodes(data=True)
>>> [(1, {}), (2, {}), (3, {}), (4, {})]
G.node[1]['attribute']='value'
G.nodes(data=True)
>>> [(1, {'attribute': 'value'}), (2, {}), (3, {}), (4, {})]
nx.write_graphml(G,'so.graphml')
将networkx导入为nx
G=nx.Graph()
G.从([(1,2)、(1,3)、(1,4)、(3,4)]中添加边
G
>>> 
G.节点(数据=真)
>>> [(1, {}), (2, {}), (3, {}), (4, {})]
G.node[1]['attribute']='value'
G.节点(数据=真)
>>>[(1,{'attribute':'value'}),(2,{},(3,{},(4,{})]
nx.write_graphml(G,'so.graphml')
另一种方法是。您也可以使用gml文件

正如psychemedia所说,您可以使用Networkx绘制图形并导出到gml文件

nx.write_graphml(G,'my_file.gml')

然后,在Cytoscape中单击“来自网络文件”,并选择您的gml文件。在这里,您也可以更改样式。

有三个答案提到Networkx和Gephi,但没有人提到。主要的区别在于,算法是用C++实现的,与NETWorkX.</P>相比。 此外,它还包括可视化。从网站:

使用各种算法和工具方便地绘制图形 输出格式(包括到屏幕)。图形工具有自己的功能 布局算法和基于 cairo和GTK+,但它也可以作为一个非常舒适的界面工作 到优秀的graphviz包装

这里有一个简单的例子(还有很多):

(政治博客网络的块分区)

以及它的代码:

>>> g = gt.collection.data["polblogs"]
>>> g = gt.GraphView(g, vfilt=gt.label_largest_component(gt.GraphView(g, directed=False)))
>>> state = gt.BlockState(g, B=g.num_vertices(), deg_corr=True)
>>> state = gt.multilevel_minimize(state, B=2)
>>> gt.graph_draw(g, pos=g.vp["pos"], vertex_fill_color=state.get_blocks(), output="polblogs_agg.pdf")
<...>
>g=gt.collection.data[“polblogs”]
>>>g=gt.GraphView(g,vfilt=gt.label_最大_组件(gt.GraphView(g,directed=False)))
>>>state=gt.BlockState(g,B=g.num_顶点(),deg_corr=True)
>>>状态=gt.多级_最小化(状态,B=2)
>>>gt.graph\u draw(g,pos=g.vp[“pos”],vertex\u fill\u color=state.get\u blocks(),output=“polblogs\u agg.pdf”)
(注意:在本例中,每个节点的位置都是预先确定的,因此不必运行布局算法)

下面是另一个使用相同数据的示例(结果令人难以置信):
最近这里发生了很多事情是一个库,致力于在Python中实现网络的简单、可复制的交互式可视化(免责声明:我是贡献者)


另请查看,如果您想将网络导出为html,则最好使用这种方法。

在堆栈溢出时,强烈建议不要使用仅链接的答案。相反,我想包括一个将Cytoscape用于社交网络的基本示例。对不起,drs。但我刚刚完成了其他答案。我会更好。如何通过ajax调用将这个n/w图提取到html?
output=“polblogs\u agg.pdf”
如果必须将这些图嵌入到html页面中,则会出现问题?可以返回
html
div
??@NoobEditor请参阅:
fmt:Output file format。可能的值有“auto”、“ps”、“pdf”、“svg”和“png”。如果值为“auto”,则根据输出参数猜测格式。
因此,只需将其命名为例如.png,您将得到一个png。下一步是将此图像包含在html中。2017年在mac上安装graphtool是不可能的。需要OSX mavericksWow。我不喜欢你编辑我文章的方式,巴加夫·拉奥!我通常喜欢改进别人写的问题的自由,也许你确实在某种程度上有所改进,尽管我看不出来。1) 你删除了重要部分(fx“analyze”,现在它只显示“可视化”)2)你添加了我从未打算说的非重要内容“但我不想重新发明轮子”。3) 你加了一句蹩脚的话“但我不想再发明轮子”,应该是“不想再发明”。