ホームページ  >  記事  >  バックエンド開発  >  Matplotlib グラフを PyQt4 アプリケーションにシームレスに統合するにはどうすればよいですか?

Matplotlib グラフを PyQt4 アプリケーションにシームレスに統合するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-10-28 08:39:011075ブラウズ

How to Seamlessly Integrate Matplotlib Graphs into Your PyQt4 Applications?

PyQt4 への Matplotlib の埋め込み: ステップバイステップ ガイド

対話型の matplotlib グラフを PyQt4 ユーザー インターフェイスに統合する方が簡単ですと思われるかもしれません。以下に段階的な説明を示します:

  1. 必要なモジュールをインポートします:

    まず、関連する Qt ウィジェットを matplotlib.backends からインポートします。 backend_qt4agg:

    <code class="python">from matplotlib.backends.backend_qt4agg import FigureCanvasQTAgg as FigureCanvas
    from matplotlib.backends.backend_qt4agg import NavigationToolbar2QT as NavigationToolbar</code>
  2. Matplotlib Figure を作成します:

    グラフのキャンバスとして機能する Figure オブジェクトをインスタンス化します。

    <code class="python">self.figure = Figure()</code>
  3. Canvas の Qt ウィジェットをインスタンス化します:

    FigureCanvas のインスタンスを作成します。これは、Figure を表示する Qt ウィジェットを表します。

    <code class="python">self.canvas = FigureCanvas(self.figure)</code>
  4. ナビゲーション ツールバーを追加します:

    NavigationToolbar ウィジェットは、Figure のズーム、パン、保存のためのコントロールを提供します。

    <code class="python">self.toolbar = NavigationToolbar(self.canvas, self)</code>
  5. ボタンの作成:

    クリックするとプロット関数をトリガーする PyQt ボタンを作成します。

    <code class="python">self.button = QtGui.QPushButton('Plot')
    self.button.clicked.connect(self.plot)</code>
  6. レイアウトをデザインする:

    Qt レイアウト内にウィジェットを配置します。

    <code class="python">layout = QtGui.QVBoxLayout()
    layout.addWidget(self.toolbar)
    layout.addWidget(self.canvas)
    layout.addWidget(self.button)
    self.setLayout(layout)</code>
  7. プロットランダム データ:

    ランダム データを生成し、それを図上にプロットする関数を定義します。

    <code class="python">def plot(self):
        data = [random.random() for i in range(10)]
        ax = self.figure.add_subplot(111)
        ax.clear()
        ax.plot(data, '*-')
        self.canvas.draw()</code>

次の手順に従って、 PyQt4 ユーザー インターフェイス内の matplotlib グラフにより、データを視覚化し、Qt ウィジェットを通じてデータを操作できるようになります。

以上がMatplotlib グラフを PyQt4 アプリケーションにシームレスに統合するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。