Python 3.x networkx和dict_值导致浮点参数错误
我试图按照下面发布的教程中给出的代码“再现性”进行操作,但在第一次尝试draw()可视化时,我被卡住了Python 3.x networkx和dict_值导致浮点参数错误,python-3.x,networkx,Python 3.x,Networkx,我试图按照下面发布的教程中给出的代码“再现性”进行操作,但在第一次尝试draw()可视化时,我被卡住了 import networkx as nx import matplotlib.pyplot as plt import matplotlib.colors as mcolors def draw(G, pos, measures, measure_name): nodes = nx.draw_networkx_nodes (G, pos, node_size=250,
import networkx as nx
import matplotlib.pyplot as plt
import matplotlib.colors as mcolors
def draw(G, pos, measures, measure_name):
nodes = nx.draw_networkx_nodes
(G, pos, node_size=250,cmap=plt.cm.plasma,
node_color=measures.values(),
nodelist=measures.keys())
nodes.set_norm(mcolors.SymLogNorm(linthresh=0.01, linscale=1))
edges = nx.draw_networkx_edges(G, pos)
plt.title(measure_name)
plt.colorbar(nodes)
plt.axis('off')
plt.show()
G = nx.karate_club_graph()
pos = nx.spring_layout(G)
draw(G, pos, nx.degree_centrality(G), 'Degree Centrality')
回溯始终显示错误:
float()参数必须是字符串或数字,而不是“dict_values”
基于此,
我认为这是Python3的问题。我试过了
draw(G, np.array(list(pos.values())).astype(float),
nx.degree_centrality(G), 'Degree Centrality')
但我还是犯了同样的错误。有什么建议吗?该代码在python2.7上运行良好。
原因是Python2和Python3之间的
measures.values()类型不同。
事实上,在Python2.7中,dict.values返回列表,而在Python3.x中,它返回字典值的视图
d={"k":"v"}
#python 2.7
type(d.values()) ---> <type 'list'>
#python 3.x
type(d.values()) ---> <class 'dict_values'>
该代码在python2.7中运行良好。
原因是Python2和Python3之间的measures.values()类型不同。
事实上,在Python2.7中,dict.values返回列表,而在Python3.x中,它返回字典值的视图
d={"k":"v"}
#python 2.7
type(d.values()) ---> <type 'list'>
#python 3.x
type(d.values()) ---> <class 'dict_values'>
你能提供一个简单的例子来重现问题吗?我复制了教程并在问题中发布了代码。你能提供一个简单的例子来重现问题吗?我复制了教程并在问题中发布了代码。太棒了!我不知道是什么把它绊倒了!谢谢杰出的我不知道是什么把它绊倒了!谢谢