3

私は少し前に、python と matplotlib を使用して 2 つの関数の出力を比較していました。matplotlib を使用したプロットは非常に簡単なので、結果は単純でした。異なるマーカーで 2 つの配列をプロットしただけです。簡単なことです。

今、私は同じ問題を抱えていますが、比較する曲線のペアがたくさんあります。最初は、すべてを異なる色とマーカーでプロットしてみました。各曲線の範囲がまったく同じではないため、これは私を満足させませんでした。これに加えて、識別するのに十分なほど異なる色とマーカーをすぐに使い果たしました (RGBCMYK、その後、カスタム色は以前のもののいずれかに似ています)。

また、曲線の各ペアをサブプロットして、多くのプロットを持つウィンドウを取得しようとしました。人が多すぎて。プロットごとに 1 つのウィンドウを試しましたが、ウィンドウが多すぎます。

したがって、既存のウィジェットがあるかどうか、またはこれを達成するための提案 (または別のアイデア) があるかどうか疑問に思っていました:

曲線のペアを表示してから、スライドバー、ボタン、マウス スクロール、またはその他のウィジェットやイベントを使用して、次の曲線を簡単に選択したいと考えています。曲線を変更すると、前の曲線が消え、凡例が変更され、その軸も変更されます。

4

3 に答える 3

9

マウス クリックのイベント ハンドラーを使用して、なんとかそれを行うことができました。もっと便利なものに変更しますが、とにかくソリューションを投稿します。

import matplotlib.pyplot as plt

figure = plt.figure()
# plotting
plt.plot([1,2,3],[10,20,30],'bo-')
plt.grid()
plt.legend()

def on_press(event):
    print 'you pressed', event.button, event.xdata, event.ydata
    event.canvas.figure.clear()
    # select new curves to plot, in this example [1,2,3] [0,0,0]
    event.canvas.figure.gca().plot([1,2,3],[0,0,0], 'ro-')
    event.canvas.figure.gca().grid()
    event.canvas.figure.gca().legend()
    event.canvas.draw()


figure.canvas.mpl_connect('button_press_event', on_press)
于 2010-01-12T17:59:23.427 に答える
2

私は特性を使うのが本当に好きです。チュートリアル「科学プログラミング用のグラフィカルアプリケーションの作成」に従うと、やりたいことができるはずです。チュートリアルでは、グラフィカルユーザーインターフェイスを使用してmatplotlibグラフを操作する方法を示します。

于 2010-02-11T12:26:57.393 に答える
2

アプリケーションに matplotlib を埋め込みたいようです。そのために利用できるリソースがいくつかあります。

于 2010-01-12T18:02:41.360 に答える