01背景说明
首先,说明一下背景。我的电脑在2024年6月时使用backtrader进行cerebro.plot()是没有问题的,图能够在Notebook中正常显示,没有错误提示。
2024年7月下旬,连续学习和试用了好几个AI工具后,我鬼使神差点了Notebook AI助手安装,等过了几天再使用backtrader时,其他语句都没有问题,但就是cerebro.plot()就会报出错误且图形就是不显示。
Javascript Error: IPython is not defined
02问道于AI
这个问题我问了好几个AI,包括天工,豆包,Kimi,智普... 给出的分析和方案都没有效果,依然是无法在Notebook中绘制图了。
这里面包括有:
- 更新 Backtrader 和 matplotlib;
- 使用
%matplotlib inline
魔术命令; - 确保安装了
ipywidgets;
- 重启 Jupyter Notebook 服务器等
然后,我又回到了AI之前的办法,百度以及在CSDN上搜索别人的blog,发现几个点:
- 大多是本身设置或依赖库一开始就有问题,而我是中途突然出问题的
- backtrader依赖Matlibplot,因此matlibplot一样也报这个错
- 安装ipympl,把魔法命令写成 %matplotlib widget
- 网页上有贴子说Notebook没问题,但是JupyterLab有问题
- 网上也有7月份更新了Anaconda出现相同问题的提问(答案是上面第3点)
03问题答案
最后,我发现了问题所在,我在更新之后,当前打开的Notebook多了一个选择:Open in... 点击它会出现一个下拉列表,其中第二项是NbClassic,我理解就是NoteBook Classic即Notebook经典版的意思。那么当前我们默认的就不是经典Notebook。
于是点击“NbClassic”后,会新打开一个页面,感觉很熟悉,在这个页面里,再次运行cerebro.plot()后,就能正常显示图了:
原来,的确在更新后是有些东西不一样的,想要回到之前的,要选择NbClassic来打开即可~
问题解决,记录、收工~