先说问题发生的场景。在vscode下使用jupyter notebook时,经常会使用matplotlib来绘图,但是发现一个问题:vscode下的最终ipynb文件大小要比在网页中运行notebook的文件要大得多。
对于下面这段代码[1]:
在网页端运行后,得到的文件大小为81.2KB:
而在vscode中运行后,大小为316KB:
足足大了四倍。文件过大的弊端不少,比如文件上传到gitee上,过大的文件无法在网页上预览,并且文件内容更多的情况下,文件大小可能高达几十MB,在vscode中预览会出现明显的卡顿,十分影响使用。
原因:直接上结论,因为vscode的python插件的python.dataScience.enablePlotViewer选项设置。该设置的官方文档描述为"Modify plot output so that it can be expanded into a plot viewer window."即“修改绘图输出,以便可以将其拓展到绘图预览窗口”,简单地说,就是使得matplotlib的绘图可以双击查看,因此图片的质量比较高,最终使得文件体积比较大。
解决办法:在vscode中,将该选项(python.dataScience.enablePlotViewer)设置为false即可。
参考
- ^https://github.com/ageron/handson-ml/blob/master/02_end_to_end_machine_learning_project.ipynb