我有一个python脚本,它使用熊猫加载一个csv文件,然后使用pgmpy学习数据上的贝叶斯网络。
在学习了结构之后,我使用以下函数绘制图形:
nx.draw(graph_model, node_color='#00b4d9', with_labels=True)这在Ubuntu中非常有效,但是,它在运行Mac的虚拟机中抛出了一个StopIteration错误,我用它来编译Mac版本。
它抛出的错误如下(我已经删除了路径,因为它包含项目名称,这是未发布的工作):
StopIteration:
At:
<path>/site-packages/matplotlib/bezier.py(352): split_path_inout
<path>/site-packages/matplotlib/patches.py(2754): _shrink
<path>/site-packages/matplotlib/patches.py(2771): _call_
<path>/site-packages/networkx/drawing/nx_pylab.py(794): _connectionstyle
<path>/site-packages/matplotlib/patches.py(4453): _get_path_in_displaycoord
<path>/site-packages/matplotlib/patches.py(4440): get_path
<path>/site-packages/matplotlib/axes/_base.py(2376): _update_patch_limits
<path>/site-packages/matplotlib/axes/_base.py(2358): add_patch
<path>/site-packages/networkx/drawing/nx_pylab.py(867): _draw_networkx_edges_fancy_arrow_patch
<path>/site-packages/networkx/drawing/nx_pylab.py(889): draw_networkx_edges
<path>/site-packages/networkx/drawing/nx_pylab.py(334): draw_networkx
<path>/site-packages/networkx/drawing/nx_pylab.py(120): draw
<path>/bayesian_network/draw_model.py(7): <module>我已经检查了学习过的图是否有节点和边。如果我试图用一个节点绘制一个图,它就能工作。
我已经升级了所有的包,包括pgmpy、matplotlib和networkx。
这个问题是否与正在运行Mac的虚拟机中执行的代码有关?我目前无法访问真正的Mac机器来测试它。
发布于 2022-03-31 20:29:11
最后,我把这个位置添加成一个圆形布局来解决它。看起来在上一个版本中,它会自动完成这个操作,但是在虚拟机中安装的新版本中却没有。
pos = nx.circular_layout(graph_model)
nx.draw(graph_model, node_color='#00b4d9', pos=pos, with_labels=True) https://stackoverflow.com/questions/71607514
复制相似问题