Pythonのウインドウにグラフを表示する
こんにちはrock204チャンネルです。
今回は「pythonのウィンドウにグラフを表示する」と題しお送りします。
左の図はtkinterのウィンドウにグラフを埋め込んだイメージとなります。
これはプログラムの構成としては、tkinterのウィンドウをまず設置し、その中にグラフィックを描くことができるキャンパスを配置します。
そして、その中にグラフ用のオブジェクトFiguerを紐づけて表示するという形となります。
それではプログラムを見て行きましょう。
最初にグラフの埋め込みに使用するモジュールと、グラフのツールバーに使用するモジュールを
3、4行のように読み込みます。
‘FigureCanvasTkAggオブジェクトでグラフをtkinterの画面に埋め込むことが可能になります。
またグラフのツールバーの埋め込みには、NavigationToolbar2Tkを使用します。
9行は、tkinterのウインドウオブジェクトrootを生成します。
データの生成は、13行でnumpyのlinespace関数を使用し、0から2πまでのデータを等間隔とした500個をxに取得します。
またyにはsin(x)を代入しグラフを書く系列とします。
こちらはグラフ用オブジェクトfigureを生成するプログラムとなります。
18行ではFigureのあとのカッコ内にfigsize=(7,5),dpi=100として大きさを設定します。
このようにすると700×500ピクセルのグラフ用のオブジェクトをfigを設定することができます。
このfigオブジェクトにグラフを追加するには、add_subplot(1,1,1)と設定します。
これはfigオブジェクトに一行目一列目一番目にグラフを追加する意味となってきます。
そして22行目でデータ系列x,yをプロットします。
生成されたFigureオブジェクトをキャンバスに埋め込むには
Canvas=FigureCanvasTkAggとし、カッコの中はfig,rootとします。
そしてこのcanvasをウィンドウに27行で配置します。
またツールバーを表示するにわ31行のように記述します。
#graph_in_windows01
import tkinter as tk
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg,NavigationToolbar2Tk
from matplotlib.figure import Figure
import numpy as np
'''FigureCanvasTkAggオブジェクトでグラフをtkinterの画面に埋め込むことが可能になる。
グラフのツールバーの埋め込みには、NavigationToolbar2Tkを使用'''
root = tk.Tk()
root.title("graph_in_windows01")
#グラフデータの生成
x = np.linspace(0, 2*np.pi, 500)
#等差数列を生成するが、間隔ではなく要素数500を指定
y = np.sin(x)
#グラフ用オブジェクトfigereを生成
fig = Figure(figsize=(7, 5), dpi=100) #Figureインスタンスをfigを作成
#figsize=(7, 5), dpi=100は700×500ピクセル
ax = fig.add_subplot(1, 1, 1) #Figureインスタンスにグラフを追加
# (1, 1, 1)は1行目1列の1番目に追加
line, = ax.plot(x, y) #描画するデータの設定
#Figureをcanvasに埋め込む
canvas = FigureCanvasTkAgg(fig, root)
#グラフをtkinterウインドウに埋め込む
canvas.get_tk_widget().pack()
#canvasをウインドウに配置する
#ツールバーを表示する
toolbar=NavigationToolbar2Tk(canvas, root)
root.mainloop()
それではこの方法を筋電図の表示プログラムに応用してみましょう。
ここから先は
Amazonギフトカード5,000円分が当たる
この記事が気に入ったらチップで応援してみませんか?