图中不会显示while循环

时间:2015-09-01 00:36:28

标签: python plot while-loop

因为处理一些数据需要很长时间,所以我需要在数据合适之后在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

2 个答案:

答案 0 :(得分:0)

如果您将代码更改为此

,它应该有效
    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

这是for python 3.我相信python 2而不是eval你可以使用raw_input。

答案 1 :(得分:0)

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)

两件事,pi应该是np.pi;添加plt.draw()绘制绘图和plt.pause(0.1)(或其他时间)以允许图形显示一段时间。