jupyterlab:matplotlib输出在循环内不同步

vuktfyat  于 2023-04-21  发布在  其他
关注(0)|答案(1)|浏览(119)

我需要您的帮助来理解为什么下面的(简化的)最小示例没有给予预期的输出(每个显示行之后的每个图形)。

import matplotlib.pyplot as plt
import random
for i in range(2):
    print("i =", i)
    no_of_balls = 25
    x = [random.triangular() for i in range(no_of_balls)]
    y = [random.gauss(0.5, 0.25) for i in range(no_of_balls)]
    fig = plt.figure(figsize=(6,4))
    fig.gca().plot(x, y)

注:我不能在我的情况下使用fig.show(),因为我使用了图的axe属性,否则我会得到以下消息
.../site-packages/matplotlib/figure.py:457:用户警告:matplotlib当前使用非GUI后端,因此无法显示“matplotlib当前使用非GUI后端”的图,
预先感谢您的帮助。

kupeojn6

kupeojn61#

使用display似乎修复了代码:

import matplotlib.pyplot as plt
import random
for i in range(2):
    display("i =" + str(i))  # <--- changed here
    no_of_balls = 25
    x = [random.triangular() for i in range(no_of_balls)]
    y = [random.gauss(0.5, 0.25) for i in range(no_of_balls)]
    fig = plt.figure(figsize=(6,4))
    fig.gca().plot(x, y)
    display(fig)   # <--- changed here (new line)

相关问题