1

Python を使い始めて以来、matplotlib で問題が発生しています。インタラクティブ モードを使用する場合、 ipython --pylab --wthread を実行してプロットを取得する必要があります ( --wthread コマンドを使用しない場合、何もプロットされません)。これまでのところ、問題はありません。

今、私はしたい:

  1. ループに入る
  2. 何かをプロットします。このプロットは、2 つのサブプロットを含む大きなプロットです。
  3. その後、easygui を使用してボタン パネルを表示し、ユーザーがプロットで見たものに応じて決定できるようにします。
  4. プロットを閉じる
  5. リストにプロットするものごとに繰り返します。

私は今これでいくつかの問題を見つけています:

1) run script.py コマンドを使用してインタラクティブな方法でスクリプトを実行しようとすると、何もプロットされず、ボタン パネルに直接ジャンプします。ただし、スクリプトを停止すると、プロットが表示されます。何が起こっているかは、スクリプトが for ループで完了するまで、「実行」コマンドがプロットを表示しないことであると確信しています。しかし、ボタンの前にプロットを表示する必要があります。

2)いくつかの試行の後、このコードが機能することがわかりました(私には神秘的な理由で...)。他の方法を試しましたが、show() または draw() コマンドを削除すると、スクリプトが機能しなくなります

fig=plt.figure(figsize=(16,8))

plt.show()

ax1=fig.add_subplot(121)

ax2.things...

ax2=fig.add_subplot(122)

ax2.things

plt.draw()

plt.show()

plt.draw()

showthebuttonsthing...

これが機能している場合でも、matplotlib はループにうまく対応していないようで、5 秒間ボタンを押さずに待っていると、matplotlib ウィンドウが灰色になります。これはばかげているように聞こえるかもしれませんが、色はユーザーに決定してもらいたい決定にとって重要です...

3) ipython の外で python スクリプトを実行すると、python スクリプトにプロットを表示させる方法が見つかりません...

私のmatplotlib構成に本当に問題があると思いますが、これを機能させる方法が見つかりません...誰か私に手を貸してもらえますか?

よろしくお願いします!

4

1 に答える 1

0

ほとんど理解できたように見えますが、代わりに次の順序で実行してみてください。

fig = plt.figure(figsize=(16,8))
ax = [fig.add_subplot(121),fig.add_subplot(122)]

ax[0].things
ax[1].things

plt.show()

#show the button panel

ただし、最善の方法は、プロットを GUI に統合することです。EasyGUI には詳しくありませんが、tk をベースにしているようです。このは、図を tk ウィンドウに埋め込むのに役立ちます。

于 2012-10-14T16:54:37.770 に答える