pymnet复杂网络可视化运行报错

pymnet复杂网络可视化运行报错_第1张图片

直接在github下载压缩包并解压,然后把解压文件放到python 路径中就可以直接使用了

但我在运行example的时候,pymnet.draw语句报错,fig_social=pymnet.draw(net_social,show=False,layout="spectral",layerPadding=0.2)

显示:

fig_social=pymnet.draw(net_social,show=False,layout="spectral",layerPadding=0.2),出现File D:\project_8_PDDM\pymnet\network\pymnet\visuals\drawbackends\mpl.py:51, in NetFigureMPL.draw(self, **kwargs)
49 if ax == None:
50 self.fig=plt.figure(figsize=self.figsize)
---> 51 self.ax=self.fig.gca(projection='3d')
52 else:
53 assert isinstance(ax,Axes3D), "The axes need to have 3D projection. Use, for example, fig.add_subplot(111, projection='3d')"

TypeError: FigureBase.gca() got an unexpected keyword argument 'projection'

根据错误信息,找到mpl.py的第51行

FigureBase.gca() 方法不支持 projection 关键字参数。这可能是因为 FigureBasematplotlib.figure 模块中的基础类,不包含用于创建 3D 图形的方法。因此,调用 self.fig.gca(projection='3d') 会引发 TypeError。要在 matplotlib 中创建 3D 图形,可以使用 mpl_toolkits.mplot3d 模块中的 Axes3D 类。找到mpl.py的第51行,将这几行的if else修改成:

       if ax == None:

            self.fig = plt.figure(figsize=self.figsize)

            self.ax = self.fig.add_subplot(111, projection='3d')

        else:

            assert isinstance(ax, mpl_toolkits.mplot3d.axes3d.Axes3D), "The axes need to have 3D projection. Use, for example, fig.add_subplot(111, projection='3d')"

            self.ax = ax

            self.fig = self.ax.get_figure()

保存文件,重新运行Jupyter notebook 问题解决。

下一步尝试:是否可以可视化自己构建的生物网络?

你可能感兴趣的:(python,开发语言)