我有一个Python脚本,它会不断循环并等待用户输入,以使其从文件中获取数据并使用Matplotlib绘制出来。我的目的是,当脚本在控制台上继续询问下一轮用户输入和绘图时,图形能够显示并保持交互状态。因此,最终用户可能会打开几个可操作的绘图窗口。
实际上,我已经在我的Python 2.7 Anaconda版本中运行了该脚本,并使用以下示例代码进行了测试(每次循环只绘制随机数据集)。
实际上,我已经在我的Python 2.7 Anaconda版本中运行了该脚本,并使用以下示例代码进行了测试(每次循环只绘制随机数据集)。
import sys
import matplotlib.pyplot as plt
import matplotlib
import numpy as np
print('matplotlib version: '+matplotlib.__version__)
version = sys.version_info[0]
def plot_data(data):
fig = plt.figure(figsize=(6,6))
plt.plot(data)
plt.ion()
plt.show()
plt.pause(0.001)
while True:
if version < 3:
option = raw_input('type (1) to plot next data, (q) to quit\n')
else:
option = input('type (1) to plot next data, (q) to quit\n')
if option == '1':
data = np.random.choice(1000,100, replace = False)
plot_data(data)
elif option == 'q':
break
在我的Python 3.6版本中运行代码时,图表会显示出来,但是处于非响应状态,直到我返回控制台并键入“q”退出用户输入循环。在Python 2.7中,图表窗口通过多个输入循环和绘图调用完全可用。因此,我希望有人知道这里的区别。我打印了matplotlib版本,并且似乎我的2.7和3.6环境都使用相同的matplotlib 2.0.2,所以也许是GUI处理程序的问题?