图不会显示在while循环中

2024-04-26 02:37:52 发布

您现在位置:Python中文网/ 问答频道 /正文

因为处理一些数据需要很长时间,所以我需要在数据正常后在while循环中画线。但是图不能显示在while循环中,现在我将粘贴一个简化的代码,它也可以反映相同的问题。谢谢你的耐心。在

import numpy as np
import matplotlib.pyplot as plt

x=np.linspace(0,2*pi,20)
y=np.sin(x)
z=np.cos(x)
while 1:
    nPlt = input('input nPlt:')
    if nPlt == 1:
        plt.plot(x,y)
    elif nPlt == 2:
        plt.plot(x,z)
    else:
        break

Tags: 数据代码importnumpyinputplotmatplotlib粘贴
2条回答
import numpy as np
import matplotlib.pyplot as plt

x=np.linspace(0,2*np.pi,20)
y=np.sin(x)
z=np.cos(x)
while 1:
    nPlt = input('input nPlt:')
    if nPlt == 1:
        plt.plot(x,y)
    elif nPlt == 2:
        plt.plot(x,z)
    else:
        break
    plt.draw()
    plt.pause(0.1)

有两件事,皮应该是np.pi;已添加绘图()绘制图暂停(0.1)(或其他时间)以允许图形显示一段时间。在

如果您将代码改为

    import numpy as np
    import matplotlib.pyplot as plt

    x=np.linspace(0,2*pi,20)
    y=np.sin(x)
    z=np.cos(x)
    while 1:
        nPlt = eval(input('input nPlt:')) #Note eval was added
            if nPlt == 1:
                plt.plot(x,y)
            elif nPlt == 2:
                plt.plot(x,z)
            else:
                break
    plt.show() #Note I added this line

这是python3的。我相信对于python2,可以使用原始的输入而不是eval。在

相关问题 更多 >