質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Jupyter

Jupyter (旧IPython notebook)は、Notebook形式でドキュメント作成し、プログラムの記述・実行、その実行結果を記録するツールです。メモの作成や保存、共有、確認などもブラウザ上で行うことができます。

Matplotlib

MatplotlibはPythonのおよび、NumPy用のグラフ描画ライブラリです。多くの場合、IPythonと連携して使われます。

Tkinter

Tkinterは、GUIツールキットである“Tk”をPythonから利用できるようにした標準ライブラリである。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

1998閲覧

python 表示されるグラフを更新したい

ekTJ

総合スコア109

Jupyter

Jupyter (旧IPython notebook)は、Notebook形式でドキュメント作成し、プログラムの記述・実行、その実行結果を記録するツールです。メモの作成や保存、共有、確認などもブラウザ上で行うことができます。

Matplotlib

MatplotlibはPythonのおよび、NumPy用のグラフ描画ライブラリです。多くの場合、IPythonと連携して使われます。

Tkinter

Tkinterは、GUIツールキットである“Tk”をPythonから利用できるようにした標準ライブラリである。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2021/10/22 08:40

python tkinterでグラフを表示 表示される内容を更新させたい

matpolotlibをほとんど触ったことが無く、試行錯誤しながら作成しております。

最初にグラフが表示された後、設置したボタンでグラフを表示すると、最初に表示されたブラフの下に表示されてしまいます。
どんどんグラフが下に連なるのではなく、上に重なっていく形を探しています。
fig.clf()でfigureを初期化?してもダメ。そもそも、配置の仕方・考え方が間違っているのでしょうか。
どなたかご教示願います。

python

1import 省力 2 3root2 = tk.Tk() 4root2.geometry('400x350+100+150') 5root2.title('グラフ') 6 7fig = plt.figure() 8ax1 = fig.add_subplot(111) 9 10plt.plot(nyu_zika,color = 'green',label="当日") 11plt.plot(zennyu_zika,color = 'blue', label="前日") 12plt.title("時間帯別入館数(日)", fontsize = 14) 13plt.legend(loc="upper right") 14plt.xlabel('時間帯', fontsize = 12) 15plt.ylabel('入館数', fontsize = 12) 16 17canvas = FigureCanvasTkAgg(fig, master=root2) 18canvas.draw() 19canvas.get_tk_widget().pack() 20 21def btn_click_1(): 22 23 fig.clf() 24 25 plt.plot(nyu_zika,color = 'green',label="当日") 26 plt.plot(zennyu_zika,color = 'blue', label="前日") 27 plt.title("時間帯別入館数(日)", fontsize = 14) 28 plt.legend(loc="upper right") 29 plt.xlabel('時間帯', fontsize = 12) 30 plt.ylabel('入館数', fontsize = 12) 31 32 canvas = FigureCanvasTkAgg(fig, master=root2) 33 canvas.draw() 34 canvas.get_tk_widget().pack() 35 36def btn_click_2(): 37 38 global fig 39 fig.clf() 40 fig = plt.figure() 41 ax1 = fig.add_subplot(111) 42 43 plt.plot(nyu_syu_zika,color = 'green',label="当週") 44 plt.plot(zennyu_syu_zika,color = 'blue', label="前週") 45 plt.title("時間帯別入館数(週)", fontsize = 14) 46 plt.legend(loc="upper right") 47 plt.xlabel('時間帯', fontsize = 12) 48 plt.ylabel('入館数', fontsize = 12) 49 50 canvas = FigureCanvasTkAgg(fig, master=root2) 51 canvas.draw() 52 canvas.get_tk_widget().pack() 53 54def btn_click_3(): 55 56 fig.clf() 57 58 plt.plot(nyu_zika_tuki,color = 'green',label="当月") 59 plt.plot(zennyu_zika_tuki,color = 'blue', label="前月") 60 plt.title("時間帯別入館数(月)", fontsize = 14) 61 plt.legend(loc="upper right") 62 plt.xlabel('時間帯', fontsize = 12) 63 plt.ylabel('入館数', fontsize = 12) 64 65 canvas = FigureCanvasTkAgg(fig, master=root2) 66 canvas.draw() 67 canvas.get_tk_widget().pack() 68 69#ボタン 70btn_g_1 = tk.Button(root2, text='日',width=4, font=("Meiryo UI",11), bg="#d9d9d9",command=btn_click_1) 71btn_g_1.place(x=110, y=300) 72 73btn_g_2 = tk.Button(root2, text='週',width=4, font=("Meiryo UI",11), bg="#d9d9d9",command=btn_click_2) 74btn_g_2.place(x=160, y=300) 75 76btn_g_3 = tk.Button(root2, text='月',width=4, font=("Meiryo UI",11), bg="#d9d9d9",command=btn_click_3) 77btn_g_3.place(x=210, y=300) 78 79root2.mainloop() 80

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

canvas.get_tk_widget.pack()を下記に変更で希望道理の動きになりました。
→canvas.get_tk_widget().grid(row=0, column=0)

投稿2021/10/22 08:57

ekTJ

総合スコア109

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問