VSCode Jupyter环境中Plotly Express的px.imshow()无法正常显示图像的解决咨询
解决VSCode Jupyter环境中Plotly Express px.imshow()显示异常的问题
我之前也碰到过一模一样的情况——在.py脚本里能正常显示Plotly图像,但放到VSCode的Jupyter单元格里就出问题,大概率是VSCode的Jupyter渲染环境和普通Python进程的渲染逻辑差异导致的,这里有几个靠谱的解决办法:
1. 将PIL Image转换为NumPy数组
CIFAR10返回的img_99是PIL Image对象,Plotly在Jupyter环境中对PIL格式的支持有时候会有兼容性问题,转成NumPy数组就能解决大部分显示异常:
from torchvision import datasets import os import plotly.express as px import numpy as np # 新增导入 os.chdir("books/deep-learning-with-pytorch") data_path = os.path.join(os.getcwd(),"data") cifar10 = datasets.CIFAR10(data_path, train = True, download = True) img_99, lab = cifar10[101] # 转换为NumPy数组 img_array = np.array(img_99) fig = px.imshow(img_array) fig.show()
2. 指定Plotly的渲染器
VSCode的Jupyter环境需要明确指定适配的渲染器,你可以在代码开头添加渲染器配置:
import plotly.io as pio # 设置VSCode兼容的渲染器 pio.renderers.default = 'vscode' # 如果上面的不行,也可以试试: # pio.renderers.default = 'notebook'
之后再运行你的绘图代码,就能在VSCode的Jupyter单元格内正常显示图像了。
3. 升级依赖版本
如果以上方法都没用,可能是Plotly或者VSCode Jupyter扩展的版本不兼容:
- 升级Plotly到最新版本:
pip install --upgrade plotly - 打开VSCode的扩展市场,找到「Jupyter」插件,点击「更新」按钮确保它是最新版本。
4. 临时替代方案:强制在浏览器显示
如果只是想快速验证图像,也可以直接指定在浏览器打开图像:
fig.show(renderer='browser')
这个方法和你在.py文件中运行的效果一致,但图像会在外部浏览器打开而不是VSCode内。
内容的提问来源于stack exchange,提问作者imantha
相关产品推荐
相关产品推荐

