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
相关产品推荐
相关产品推荐

