You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Matplotlib savefig存图后,Colab通过Drive下载显示空白求助

问题分析与解决

你的代码存在三个关键问题,导致挂载Drive后下载的图片为空白:

  • 下载路径错误:生成的图片保存在当前目录/content/eee.png,但你尝试下载的是/content/sample_data/eee.png,该路径下的文件并非你生成的图表。
  • 空文件创建无效:!touch "/content/gdrive/MyDrive/eee.png"仅创建了一个空文件,没有将本地生成的图片复制到Drive目录。
  • 参数拼写不规范:CMap应为matplotlib标准小写参数cmap,虽然可能未触发报错,但这是潜在的不规范问题。

修正方案一:直接保存到Drive并下载

# MTF转换处理
mtf = MarkovTransitionField(image_size=24)
X_mtf = mtf.fit_transform(df_sittingcolAx)

# 绘制图表
plt.figure(figsize=(5, 5)) 
plt.imshow(X_mtf[0], cmap='rainbow')  # 修正为小写cmap参数
plt.title('Markov Transition Field', fontsize=18) 
plt.colorbar(fraction=0.0457, pad=0.04) 
plt.tight_layout()

# 挂载Google Drive
from google.colab import drive
drive.mount('/content/gdrive')

# 直接将图片保存到Drive路径
save_path = "/content/gdrive/MyDrive/eee.png"
plt.savefig(save_path)  # 先保存再调用show,避免画布清空导致空白
plt.show()

# 下载Drive中的图片
from google.colab import files
files.download(save_path)

修正方案二:先保存到本地再复制到Drive

如果需要保留本地图片副本,可使用此方案:

# MTF转换处理
mtf = MarkovTransitionField(image_size=24)
X_mtf = mtf.fit_transform(df_sittingcolAx)

# 绘制并保存到本地
plt.figure(figsize=(5, 5)) 
plt.imshow(X_mtf[0], cmap='rainbow')
plt.title('Markov Transition Field', fontsize=18) 
plt.colorbar(fraction=0.0457, pad=0.04) 
plt.tight_layout()
plt.savefig("eee.png")
plt.show()

# 挂载Drive
from google.colab import drive
drive.mount('/content/gdrive')

# 复制本地图片到Drive目录
!cp "/content/eee.png" "/content/gdrive/MyDrive/eee.png"

# 下载Drive中的图片
from google.colab import files
files.download("/content/gdrive/MyDrive/eee.png")

内容的提问来源于stack exchange,提问作者Sehr Malik

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 07:55:31