【问题标题】:Displaying figure from another class in Google Colab using matplotlib使用 matplotlib 在 Google Colab 中显示另一个类的图形
【发布时间】:2020-07-24 04:22:42
【问题描述】:

在 google-colab 中:

我有一个使用另一个文件中的类的 python 代码。该类有一个方法,其代码如下:

def callbacks():
        plt.style.use("ggplot")
        plt.figure()
        plt.plot(N, self.H["loss"], label="train_loss")
        #code continues
        plt.legend()

        #save the fig
        plt.savefig(self.figPath)
        plt.close()

当我运行主文件的代码时,每次在每个时期都会调用此方法(“回调”的一部分)。:

model.fit(trainX, trainY, validation_data=(testX, testY),
        batch_size=64, epochs=100, callbacks=callbacks, verbose=1) 

但我无法在 google colab 中获得该数字,但它被保存在正确的位置(如预期的那样) 我做了但失败的是:

  1. 在 plt.savefig(..) 之前使用 plt.show()
  2. 在代码开始前运行%matplotlib inline

在运行 epochs 时应该做些什么来显示情节? 我希望它们在显示时代时运行的原因是因为它需要一些时间来更新谷歌驱动器上的数字

【问题讨论】:

    标签: matplotlib google-colaboratory


    【解决方案1】:

    一旦调用plt.close(),图形就会关闭。调用上述代码后显示图形的唯一方法是从您正在调用的代码中删除plt.close()

    作为最后的手段,如果无法编辑此代码,您可以在调用相关代码之前对 close 函数进行猴子修补;例如:

    plt.close = lambda: None
    

    但请注意,这种压倒一切的核心功能是一个非常糟糕的主意,并且可能会在其他地方产生意想不到的副作用。

    【讨论】:

    • 遗憾的是,它对我不起作用。我尝试在运行%matplotlib inline command 之前和之后运行代码,但无法显示图表。但是它已成功保存并在驱动器中更新
    猜你喜欢
    • 2022-01-14
    • 2019-09-07
    • 2019-11-14
    • 2017-12-25
    • 2016-11-03
    • 2019-08-12
    • 2020-03-06
    • 2021-11-02
    • 2018-10-04
    相关资源
    最近更新 更多