【问题标题】:Plot inside a loop with Google Colabs使用 Google Colabs 在循环内绘图
【发布时间】:2020-12-26 20:42:28
【问题描述】:

我正在尝试在 Google Colabs 的循环中绘制一个情节。结果应该类似于this plot: ,使用以下代码生成:

plt.axis([0, 10, 0, 10])
for i in range(10):
    plt.scatter(i, i + 1)
    plt.pause(0.5)
plt.show()

但是,输出是 10 个图,每个图只有一个点,而不是一个图,并且每 0.5 秒添加一个点。

我想这与 Google Colab 的交互模式和后端有一定的关系,但我尝试了很多东西,但都没有奏效。谢谢!

【问题讨论】:

    标签: loops matplotlib google-colaboratory


    【解决方案1】:

    解决方案是使用IPythondisplay 模块(如发现here)。此外,plt.pause(0.5) 语句可能会导致问题,您可以改用time 模块中的sleep 函数。下面的代码在 Google Colabs 中适用于我:

    import matplotlib.pyplot as plt
    
    from IPython import display
    from time import sleep
    
    plt.axis([0, 10, 0, 10])
    for i in range(10):
        plt.scatter(i, i + 1)
        display.display(plt.gcf())
        display.clear_output(wait=True)
        sleep(0.5)
    

    【讨论】:

    • 谢谢!发送问题后我找到了相同的答案,确实有效。仍然不理想,因为它会在每次迭代中渲染整个绘图,但可以完成工作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-18
    • 1970-01-01
    相关资源
    最近更新 更多