直接在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
关键字参数。这可能是因为 FigureBase
是 matplotlib.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 问题解决。
下一步尝试:是否可以可视化自己构建的生物网络?