Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/316.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 如何使用holoviews/bokeh在networkx图形中设置随机_状态?_Python_Networkx_Bokeh_Holoviews - Fatal编程技术网

Python 如何使用holoviews/bokeh在networkx图形中设置随机_状态?

Python 如何使用holoviews/bokeh在networkx图形中设置随机_状态?,python,networkx,bokeh,holoviews,Python,Networkx,Bokeh,Holoviews,我想生成可复制的绘图。使用networkx可以将随机状态传递给布局。这是为了确保绘图相同。当对holoviews执行相同操作时,我得到了一个错误 %pylab inline import pandas as pd import networkx as nx import holoviews as hv # generating the graph G = nx.Graph() ndxs = [1, 2, 3, 4] G.add_nodes_from(ndxs) G.add_weighted_

我想生成可复制的绘图。使用
networkx
可以将随机状态传递给布局。这是为了确保绘图相同。当对holoviews执行相同操作时,我得到了一个错误

%pylab inline

import pandas as pd
import networkx as nx
import holoviews as hv

# generating the graph
G = nx.Graph()
ndxs = [1, 2, 3, 4]
G.add_nodes_from(ndxs)
G.add_weighted_edges_from([(1,2,0), (1,3,1), (1,4,-1),
                           (2,4,1), (2,3,-1), (3,4,10)]) 

# drawing with networkx
nx.draw(G, nx.spring_layout(G, random_state=100))


# drawing with holoviews/bokeh
hv.extension('bokeh')
%opts Graph [width=400 height=400]
layout = nx.layout.spring_layout(G, random_state=100)
hv.Graph.from_networkx(G, layout)
>>> TypeError: 'dict' object is not callable

第一个问题是
Graph.from_networkx
方法接受布局函数,而不是该函数输出的字典。如果要向函数传递参数,可以将其作为关键字参数传递,例如:

hv.Graph.from_networkx(G, nx.layout.spring_layout, random_state=42)
在我的networkx版本中,random_state不是布局函数的可接受参数,在这种情况下,您可以直接使用NumPy设置种子:

np.random.seed(42)
hv.Graph.from_networkx(G, nx.layout.spring_layout)