我已经计算了大量节点之间的距离,以便为我正在构建的网络中的边缘赋予权重。现在我尝试绘制网络图来显示它,结果非常混乱,因为所有距离都达到 5/6+ 小数位并进入节点名称,并且变得不可读。
我尝试使用带有 roung(g,3) 的 round 函数,其中 g 是某些两个节点之间的测地距离,但得到“TypeError:类型测地线没有定义 round 方法”。为了构建我的图表,我尝试了多种布局,spring/fruchterman reingold 布局效果最好,但由于所有距离/重量数字都很长,它看起来仍然很混乱。我也尝试过使用
weight=nx.get_edge_attributes(map,'distance') arr = np.array(list(weight.values())) K=3 rounded=np.round(arr,K)
但是当我这样做时,我得到“AttributeError:'测地线'对象没有属性'rint'”。如果有办法将这些距离向下舍入或让 nx.draw() 函数仅显示前 x 个数字,那就完美了。
数据类型与您正在调用的 numpy 函数不兼容,但是您可以将数据类型转换为
float
,然后尝试舍入吗?
我有一些 python 代码,可以标记图像上的距离,并使用
text = f"{data_list[i]:0,.3f}"
进行小数舍入,其中 data_list
是浮点数列表。
import numpy as np
# convert to float
arr.astype(np.float32)
K=3
rounded=np.round(arr,K)