Python

グラフをPythonのGUIアプリケーションに表示する

概要

以前の記事でPythonのtkinterを用いたじゃんけんアプリを作成しました。

しかしながら、弊社は「データで新たな事業を開発していくカンパニー。」ですので、データとの連携がしたくなります。

この記事ではPandasのデータフレームを利用してGUIアプリケーション上にグラフをプロットしてみます。

環境

使用した環境は以下になります。

Python 3.8.12
matplotlib 3.5.1
pandas 1.3.5

コード

以下のスクリプトを実行しました。
後半の行でmatplotlibとtkinterの連携を行っています。

import tkinter

import pandas as pd
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg
from matplotlib.figure import Figure

df = pd.DataFrame({"day": [0, 1, 2, 3], "price": [100, 120, 110, 130]})

root = tkinter.Tk()
root.title("グラフの描画")

# データフレームからグラフをプロット
fig = Figure()
ax = fig.add_subplot(1, 1, 1)
df.plot.line(x="day", y="price", ax=ax)

# グラフとウィジェットの関連付け
fig_canvas = FigureCanvasTkAgg(fig, root)
# グラフの配置
fig_canvas.get_tk_widget().pack(fill=tkinter.BOTH, expand=True)

root.mainloop()

実行結果

上手く折れ線グラフをプロットすることができました。

終わりに

今回は簡単に表示だけ試してみましたが、ボタンなど他のウィジェットを組み合わせると高度な分析ツールを作成できるのではないでしょうか。
このような実装では、Pythonによる一貫した開発が可能なことが長所だと思います。
tkinterを直に使うだけでなく、ラッパーライブラリもあるようなのでそういったところも試してみたいです。

Y.N
GRIでデータ分析やアルゴリズム開発、ForecastFlowの開発に携わっています。