如何在Google Colab文本单元格中插入代码保存的本地图片
问题原因
Colab的Markdown文本单元格和代码单元格的运行环境完全隔离:
- 代码单元格读写的是Colab为你分配的远程虚拟机内部文件系统,
/content属于虚拟机的私有路径,仅代码运行环境可访问 - Markdown单元格的资源解析在你本地浏览器的上下文执行,浏览器无法直接访问谷歌后端虚拟机的内部文件路径,因此你填写的虚拟机本地路径全部无效
另外你之前使用的Markdown图片语法顺序错误,正确写法为,但即便修正语法也无法直接引用虚拟机内部文件,本质是跨环境的路径访问权限问题。
可行解决方案
方案1:代码单元格统一输出图片+文本(最适配分享场景)
不需要额外保存图片再引用,绘图后直接输出,同时用IPython工具插入说明文本即可,其他账号打开运行后100%正常显示,示例代码:
import matplotlib.pyplot as plt from IPython.display import Markdown, display # 你的绘图逻辑 plt.plot([1,2,3], [4,5,6]) plt.savefig("Jump1-04.png") plt.show() # 直接输出对应说明文本 display(Markdown(""" ### 图1:跳跃测试结果 上图为参数0.4下的实验数据统计,误差线为三次重复实验的标准差。 """))
方案2:base64嵌入图片到独立Markdown单元格
如果必须放在独立的文本单元格,可以把图片转成base64编码直接嵌入,完全不依赖外部文件或Drive分享,示例代码:
import base64 # 读取图片转base64编码 with open("Jump1-04.png", "rb") as f: img_b64 = base64.b64encode(f.read()).decode() # 打印可直接嵌入Markdown的标签,复制粘贴到文本单元格即可 print(f'<img src="data:image/png;base64,{img_b64}" />')
内容的提问来源于stack exchange,提问作者Prof Huster
相关产品推荐
相关产品推荐

