2016-12-03 3 views
1

私は異なるキー押しで異なる色のプロットを更新したいと思います。しかし、次のコードを使用すると、数字は 'q'を押した後に表示されます。キーボード入力後のplt.plot

誰でもご提案いただけますか?ありがとう!

例:

import matplotlib.pyplot as plt 
import numpy as np 

b=1 

while b: 
    a=input('Enter a key: ...') 

    if a=='b': #plot with blue color if press 'b' 
    plt.plot(np.arange(10),color='b') 
    plt.draw() 

    elif a=='r': #plot with red color if press 'r' 
    plt.plot(np.arange(10),color='r') 
    plt.draw() 

    elif a=='q': 
    b=0 

答えて

0

私は成功せず、あなたのコードを試してみました。私にとって、qを押してもプロットは現れなかった。私はこれがmatplotlib、あなたのオペレーティングシステムのバックエンド、またはPythonのバージョンのバージョンと関係しているかどうかは十分に分かりません。

私はこれを次のように変更しました...キーの変更が「plt.show(block=False)」に変更された「初回」のコードを追加しても、うまくいくようです。 block=Falseは、pltが表示されている間にスクリプトを続行させます。

import matplotlib.pyplot as plt 
import numpy as np 

b=1 

# First time 
a=raw_input('Enter a key: ...') 
if a=='b': #plot with blue color if press 'b' 
    plt.plot(np.arange(10),color='b') 
    plt.show(block=False) 

elif a=='r': #plot with red color if press 'r' 
    plt.plot(np.arange(10),color='r') 
    plt.show(block=False) 


# update 
while b: 
    a=raw_input('Enter a key: ...') 

    if a=='b': #plot with blue color if press 'b' 
     plt.plot(np.arange(10),color='b') 
     plt.draw() 

    elif a=='r': #plot with red color if press 'r' 
     plt.plot(np.arange(10),color='r') 
     plt.draw() 

    elif a=='q': 
     b=0 

私はこれを行うにはいくつかのより良い方法がありますように願っています。

関連する問題