因为处理一些数据需要很长时间,所以我需要在数据合适之后在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
答案 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)(或其他时间)以允许图形显示一段时间。