我有一个使用pandas加载csv文件的python脚本,然后使用pgmpy在数据上学习贝叶斯网络。
这个在Ubuntu中能够完美运行,但是在我用来编译Mac版本的虚拟机中会抛出一个StopIteration错误。
它抛出的错误如下(我已经删除了路径,因为它包含项目名称,这是未发布的工作):
在学习结构之后,我使用以下函数绘制图形:
nx.draw(graph_model, node_color='#00b4d9', with_labels=True)
这个在Ubuntu中能够完美运行,但是在我用来编译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机器来测试它。
graph_model
创建一个nx.DiGraph
并绘制它是一种选择:nx.draw(nx.DiGraph(graph_model.edges()), node_color='#00b4d9', with_labels=True)
。 - upe