绘制 PGMPy Networkx 图时出现 StopIteration 错误
StopIteration error while drawing a PGMPy Networkx graph
我有一个 python 脚本,它使用 pandas 加载一个 csv 文件,然后使用 pgmpy 在数据上学习贝叶斯网络。
学习结构后,我正在使用函数绘制图形:
nx.draw(graph_model, node_color='#00b4d9', with_labels=True)
这在 Ubuntu 中完美运行,但是,它在我用来编译 Mac 版本的虚拟机 运行 Mac 中抛出 StopIteration 错误。
它抛出的错误如下(我删除了路径,因为它包含项目名称,这是未发表的作品):
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 机器来测试它。
我终于解决了,把位置加成圆形布局。貌似在以前的版本中是自动执行的,但是在虚拟机中安装的新版本中没有。
pos = nx.circular_layout(graph_model)
nx.draw(graph_model, node_color='#00b4d9', pos=pos, with_labels=True)
我有一个 python 脚本,它使用 pandas 加载一个 csv 文件,然后使用 pgmpy 在数据上学习贝叶斯网络。
学习结构后,我正在使用函数绘制图形:
nx.draw(graph_model, node_color='#00b4d9', with_labels=True)
这在 Ubuntu 中完美运行,但是,它在我用来编译 Mac 版本的虚拟机 运行 Mac 中抛出 StopIteration 错误。
它抛出的错误如下(我删除了路径,因为它包含项目名称,这是未发表的作品):
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 机器来测试它。
我终于解决了,把位置加成圆形布局。貌似在以前的版本中是自动执行的,但是在虚拟机中安装的新版本中没有。
pos = nx.circular_layout(graph_model)
nx.draw(graph_model, node_color='#00b4d9', pos=pos, with_labels=True)