私のコードはmatplotibを使用してデータから多数のプロットを生成しています。ライブデモでスクロールしたい場合があります。ハツカネズミ)。現在私はそれぞれ別々に画像として保存してから別の画像ビューアを使ってそれらをスクロールしなければなりません。これをpython内から完全に行う方法はありますか?matplotlibプロットを前後にスクロール
7
A
答えて
9
それを達成するための簡単な方法は、リスト内のxとy配列の組を格納した後、プロットされるべき次の(x、y)のペアを選ぶハンドライベントを使用している:
import numpy as np
import matplotlib.pyplot as plt
# define your x and y arrays to be plotted
t = np.linspace(start=0, stop=2*np.pi, num=100)
y1 = np.cos(t)
y2 = np.sin(t)
y3 = np.tan(t)
plots = [(t,y1), (t,y2), (t,y3)]
# now the real code :)
curr_pos = 0
def key_event(e):
global curr_pos
if e.key == "right":
curr_pos = curr_pos + 1
elif e.key == "left":
curr_pos = curr_pos - 1
else:
return
curr_pos = curr_pos % len(plots)
ax.cla()
ax.plot(plots[curr_pos][0], plots[curr_pos][1])
fig.canvas.draw()
fig = plt.figure()
fig.canvas.mpl_connect('key_press_event', key_event)
ax = fig.add_subplot(111)
ax.plot(t,y1)
plt.show()
このコードでは、反復する矢印としてright
とleft
を選択しますが、変更することはできます。
+0
ありがとうございましたjabaldonedo ---あなたのサンプルは今私のプロジェクトに入っていますので、他の人にはそれが動作することを確認できます。私の場合、 'key_event'はデコレータ内のクロージャ内のクロージャです。私は原因を調べないので、前の行の最後に誤った句読点はありませんが、curr_posによって明確に定義されているにもかかわらず、 "グローバル名' curr_pos'が定義されていません " = 0 'となる。 'global curr_pos'の代わりに' not hasattr(key_event、 "curr_pos"):key_event.curr_pos = 0'という形式でソリューションを選びました。私は 'key_event .__ dict __ = {}'を使って必要に応じてリセットします。 –
関連する問題
- 1. matplotlibの幹プロット?
- 2. matplotlibのオーバーレイimshowプロット
- 3. Matplotlibの事前計算データからヒストグラムをプロットする
- 4. グラフ上に図形をプロットするMatplotlib
- 5. Matplotlibの極座標プロット
- 6. matplotlibのAxesGridプロットに共有軸プロットを追加
- 7. matplotlibによるインタラクティブな画像プロット
- 8. matplotlibのcontourfプロットの一部をマスキング
- 9. matplotlibで地形データをプロットするplot_surface
- 10. pythonのmatplotlibでプロットを更新する
- 11. matplotlibを使ったPythonプロットの日付
- 12. Matplotlibで高木関数をプロットする
- 13. matplotlibで白黒のバイナリマップをプロットする
- 14. Matplotlibでタイムスタンプ(時/分/秒)をプロットする
- 15. MatplotlibでPythonをプロットする時間
- 16. Matplotlib:3Dでの動きをプロット
- 17. matplotlibで固有ベクトルをプロットする
- 18. Matplotlib 3Dプロットが正しくプロットされない
- 19. 単一のmatplotlib図の複数のプロット
- 20. matplotlibのプロット内のポイントのラベル
- 21. matplotlibの値がゼロのLogscaleプロット
- 22. matplotlibのプロット内の円内データ
- 23. のPython 3.xのmatplotlibのプロット
- 24. Matplotlibでwxpythonプロットが中止される
- 25. python matplotlib Agg対対話プロットとtight_layout
- 26. サブモジュールのmatplotlibプロットの空の.png出力
- 27. python matplotlib:別のプロセスでプロットする
- 28. Matplotlibの時系列プロットのアノテーション
- 29. matplotlibプロット用の大きな色のセット
- 30. Astrophy matplotlibとプロット銀河座標
プロットを生成するのに必要な時間が長すぎます。私。 'ボタンを押す - >プロットを生成する - >それを表示するなど。 –
@AleksanderLidtkeライブを生成することはできますが、私が作成したプロットを順方向および逆方向にスクロールするにはどうすればよいですか? – phoenix
コールバック。 http://matplotlib.org/users/event_handling.htmlを参照してください。それが立てば、この質問は広すぎます。 – tacaswell