标签: networkx

在Gunicorn分享记忆?

我有一个大的只读数据结构(在networkx中加载的图形,虽然这不应该很重要),我在我的Web服务中使用.Web服务是在Flask中构建的,然后通过Gunicorn提供服务.事实证明,对于我旋转的每个枪支工作者来说,这个工作都拥有我自己的数据结构副本.因此,当我有8个运行时,我的~700mb数据结构可以完全由一个工人管理,变成了一个非常大的内存.有没有什么方法可以在gunicorn进程之间共享这个数据结构,所以我不必浪费那么多内存?

python networkx flask gunicorn

23
推荐指数
1
解决办法
9421
查看次数

组合(加入)networkx图

假设我有两个networkx图,G并且H:

G=nx.Graph()
fromnodes=[0,1,1,1,1,1,2]
tonodes=[1,2,3,4,5,6,7]
for x,y in zip(fromnodes,tonodes):
    G.add_edge(x,y)

H=nx.Graph()
fromnodes=range(2,8)
tonodes=range(8,14)
for x,y in zip(fromnodes,tonodes):
    H.add_edge(x,y)
Run Code Online (Sandbox Code Playgroud)

加入两个networkx图表的最佳方法是什么?

我想保留节点名称(注意公共节点,2到7).当我使用时nx.disjoint_union(G,H),这没有发生:

>>> G.nodes()
[0, 1, 2, 3, 4, 5, 6, 7]
>>> H.nodes()
[2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]
>>> Un= nx.disjoint_union(G,H)
>>> Un.nodes()
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
# 
Run Code Online (Sandbox Code Playgroud)

H节点标签被改变(不是我想要的).我想在具有相同编号的节点处加入图形.

注意.这与NetworkX中的两个加权图组合 …

python graph-theory networkx

23
推荐指数
2
解决办法
2万
查看次数

获取链接到networkx图中给定节点的所有边

只是想知道是否有方便的networkx函数返回连接到图中的给定节点(或节点)(例如my_node_name)的边的列表(例如G).

我可以这样做:

edlist=[]
for ed in G.edges():
     if 'my_node_name' in ed:
            edlist.append(ed)
Run Code Online (Sandbox Code Playgroud)

但期望可能有更好的方法?

python graph-theory networkx

23
推荐指数
2
解决办法
2万
查看次数

在NetworkX中通过边缘和节点属性查询图表的最佳实践

使用NetworkX和新的库,进行社交网络分析查询.通过查询,我的意思是按边缘节点的属性选择/创建子图,其中边创建路径,节点包含属性.该图表使用的是表格的MultiDiGraph

G2 = nx.MultiDiGraph()
G2.add_node( "UserA", { "type" :"Cat" } )
G2.add_node( "UserB", { "type" :"Dog" } )
G2.add_node( "UserC", { "type" :"Mouse" } )
G2.add_node( "Likes", { "type" :"Feeling" } )
G2.add_node( "Hates", { "type" :"Feeling" } )

G2.add_edge( "UserA", 'Hates' ,  statementid="1" )
G2.add_edge( "Hates", 'UserB' ,  statementid="1"  )
G2.add_edge( "UserC", 'Hates' ,  statementid="2" )
G2.add_edge( "Hates", 'UserA' ,  statementid="2"  )
G2.add_edge( "UserB", 'Hates' ,  statementid="3"  )
G2.add_edge( "Hates", 'UserA' ,  statementid="3"  )
G2.add_edge( "UserC", 'Likes' ,  statementid="3" …
Run Code Online (Sandbox Code Playgroud)

python igraph networkx

22
推荐指数
3
解决办法
2万
查看次数

AttributeError:'module'对象没有networkx 1.11属性'graphviz_layout'

我正在尝试使用networkx 1.11绘制一些DAG,但我遇到了一些错误,这是测试:

import networkx as nx

print nx.__version__

G = nx.DiGraph()
G.add_node(1,level=1)
G.add_node(2,level=2)
G.add_node(3,level=2)
G.add_node(4,level=3)

G.add_edge(1,2)
G.add_edge(1,3)
G.add_edge(2,4)

import pylab as plt
nx.draw_graphviz(G, node_size=1600, cmap=plt.cm.Blues,
                 node_color=range(len(G)),
                 prog='dot')
plt.show()
Run Code Online (Sandbox Code Playgroud)

这是追溯:

Traceback (most recent call last):
  File "D:\sources\personal\python\framework\stackoverflow\test_dfs.py", line 69, in <module>
    prog='dot')
  File "d:\virtual_envs\py2711\lib\site-packages\networkx\drawing\nx_pylab.py", line 984, in draw_graphviz
    pos = nx.drawing.graphviz_layout(G, prog)
AttributeError: 'module' object has no attribute 'graphviz_layout'
Run Code Online (Sandbox Code Playgroud)

我正在使用python 2.7.11 x64,networkx 1.11,我已经安装了在PATH 中可用的graphviz-2.38dot.我错过了什么?

一旦它工作,我怎么能用以下节点绘制图形:

  • 使用白色背景颜色
  • 里面有标签
  • 有导向箭头
  • 自动或手动安排得很好

类似于下图的东西

在此输入图像描述

正如您在该图像中看到的那样,节点非常好地对齐

python networkx python-2.7

22
推荐指数
1
解决办法
2万
查看次数

如何为networkx图指定精确的输出大小?

http://imgur.com/7wiRw.png

以上是我当前图表的输出.但是,我还没有管理我想要实现的目标.我需要以更大的尺寸输出我的图形,以便可以轻松查看每个节点/边缘.

我试过了nx.draw(G, node_size=size),但这只会增加节点的大小,而不是节点和边缘之间的距离.

python image networkx

21
推荐指数
2
解决办法
2万
查看次数

可以使用python 3从networkx获取分层图吗?

我正在尝试显示我的类层次结构的树形图,我networkx.将它全部正确绘制,并且显示正常.但是作为一个带有交叉边的圆形图,它是一个纯粹的层次结构,似乎我应该能够将它显示为树.

我已经广泛搜索了这个,并且提供的每个解决方案都涉及使用pygraphviz......但是PyGraphviz不能使用Python 3(来自pygraphviz网站的文档).

有没有人能够在Python 3中获得树形图显示?

python networkx pygraphviz

21
推荐指数
6
解决办法
2万
查看次数

将networkx图保存到json图的方法?

似乎在networkx中应该有一个方法来导出json图形格式,但我没有看到它.我想这应该很容易用nx.to_dict_of_dicts(),但需要一些操作.有人知道一个简单而优雅的解决方案吗?

python json graph networkx

20
推荐指数
4
解决办法
1万
查看次数

如何使用python的networkx模块从节点列表生成完全连接的子图

我需要从networkx生成一个完全连接的子图,从我想要连接的节点列表开始.基本上,我希望传递给函数的列表中的所有节点都相互连接.

我想知道是否有任何内置函数来实现这一点(我还没有找到)?或者我应该考虑一些算法?

非常感谢你.

python networkx

20
推荐指数
3
解决办法
7826
查看次数

AttributeError:模块'networkx'没有属性'from_pandas_dataframe'

我有networkx v. 2.1.为了使它与pandas数据帧一起工作,我尝试了以下内容:

  • 安装通过pip3,这不会Atrribute Error在标题中生成,因此卸载.
  • 用" python3 setup.py install" 重新安装

错误说明.

AttributeError:模块'networkx'没有属性'from_pandas_dataframe`

重现错误的步骤:

我使用导入数据csv.我这样做是因为我只想从数据集中读取5000行.

x=pd.DataFrame([x for x in rawData[:5000]])

x[:10] 

0   1   2
0   228055  231908  1
1   228056  228899  1
2   228050  230029  1
3   228059  230564  1
4   228059  230548  1
5   70175   70227   1
6   89370   236886  1
7   89371   247658  1
8   89371   249558  1
9   89371   175997  1

g_data=G=nx.from_pandas_dataframe(x)

module 'networkx' has no attribute 'from_pandas_dataframe'
Run Code Online (Sandbox Code Playgroud)

我知道我错过了 …

networkx pandas

20
推荐指数
3
解决办法
2万
查看次数