【问题标题】:Google Colab Insert a Saved Figure in a Text boxGoogle Colab 在文本框中插入保存的图
【发布时间】:2021-11-15 02:12:06
【问题描述】:

我正在编写一个 Colab 笔记本以与我的学生共享,因此我想要一个笔记本副本以在其他 Google 帐户中运行。

我确实在 Colab 的 python/jupyter 笔记本中绘制了一些数据并将其保存。喜欢

plt.savefig("Jump1-04.png")

稍后我想在一个单元格中使用这张图片,所以我尝试了各种 Markdown 和/或 HTML 方法来包含这张图片。例子:

!()["Jump1-04.png"]

或者

<img src="/content/Jump1-02.png" />

没有工作。我的困惑是我的代码可以使用open("Jump1-04.png", 'r') 打开这个文件,所以笔记本代码知道文件保存在哪里,但文本单元格不知道。 !pwd 返回 /content!ls /content 返回 Jump1-04.png。这就是为什么我尝试将/content 放在上面的 HTML 代码中。

我想避免使用 Google 云端硬盘查找文件、公开共享链接、然后在文本单元格中使用该链接的痛苦 ITB。

为什么文本单元格不能简单地找到我从代码单元格中保存的文件?

【问题讨论】:

    标签: python jupyter google-colaboratory file-access


    【解决方案1】:

    我也不是 100% 确定您的代码行有什么“不正确”的地方,但我不得不使用 plt.show() 和 plt.imshow(),并且我还将这个数字定义为最初保存(即“fig”)所以“fig.savefig()”而不是“plt.savefig()”,这没有太大区别,但这根据您的描述有效:

    import numpy as np
    import matplotlib
    import matplotlib.pyplot as plt
    fig = plt.figure(figsize = (10, 5), num = 1, clear = True)
    ax = plt.subplot(1, 1, 1, xticks = [], yticks = [], frameon = False)
    ax.plot(np.arange(0, 10, 1), color = [0, 0.5, 1], lw = 5)
    plt.show()
    fileName = 'Jump1-04.png'
    fig.savefig(fileName)
    

    打开保存的文件(在稍后的单独单元格中):

    import PIL
    from PIL import Image
    fig = plt.figure(figsize = (10, 5), num = 1, clear = True)
    ax = plt.subplot(1, 1, 1, xticks = [], yticks = [], frameon = False)
    fileName = 'Jump1-04.png'
    thisImage = Image.open(fileName)
    thisImage = ax.imshow(thisImage)
    plt.show(thisImage)
    

    要解决第一句话,这听起来像是您希望通过公开的 url 链接在互联网上发布这些图或图像,并且您和您的学生可以访问该链接,我还没有找到解决方案;如果/当我这样做时,我会更新。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-07-19
      • 1970-01-01
      • 2020-09-10
      • 1970-01-01
      • 2021-02-18
      • 2019-07-28
      • 2018-09-27
      • 2020-03-16
      相关资源
      最近更新 更多