为什么Jupyter有时会将Matplotlib绘图放在可滚动框架中显示?
该现象和你调用的fig, axes = plt.subplots(2, 2,figsize=(12, 10))代码无关,差异来自两次绘图的显示环境、渲染配置不同,常见原因如下:
- 后端类型不同:如果两次运行使用了不同的matplotlib渲染后端,使用
widget、notebook这类交互式后端时,绘图会被嵌入自带滚动、缩放控件的交互容器中;使用inline这类静态后端时则直接输出无额外控件的静态图片。 - 显示容器适配规则不同:如果是在IDE(VS Code、PyCharm、Spyder)或Notebook的内置绘图面板中展示,当渲染出的图片实际像素尺寸大于绘图面板的默认最大展示尺寸时,容器会自动添加滚动滑块;如果开启了「自动缩放适配容器」选项,图片会被等比缩小适配面板大小,就不会出现滚动条。
- 渲染DPI配置不同:
figsize指定的是英寸单位的画布尺寸,实际渲染的像素尺寸为「宽度×DPI * 高度×DPI」。如果两次运行的matplotlib全局DPI配置不同,哪怕figsize完全一致,最终生成的图片像素大小也会有区别,尺寸更大的那次就可能触发容器的滚动规则。

内容的提问来源于stack exchange,提问作者Abijah
相关产品推荐
相关产品推荐

