Open2

tkinterでファイルを選んでmatplotlibで描画するとダイアログが残っちゃう問題

ピン留めされたアイテム
ぜんぜん

ファイルを選択してプロットしたいときに以下のようなコードを書くと,ファイル選択ダイアログが残ってしまう.

import numpy as np
from tkinter.filedialog import askopenfilename
from tkinter import Tk
import os
import matplotlib.pyplot as plt

if __name__ == "__main__":
    tk = Tk()
    tk.withdraw()
    initial_dir = os.getcwd()
    try:
        filename = askopenfilename(
            title="Selct file", initialdir=initial_dir, filetypes=[("csv", "*.csv")]
        )
    except Exception as e:
        print(e)

    data = np.loadtxt(filename, delimiter=",").T

    fig = plt.figure()
    ax = fig.add_subplot(1, 1, 1)
    ax.plot(data[0], data[1])
    ax.plot(data[0], data[2])
    plt.show()

解決策

from matplotlib import use
use('TkAgg')

を追加すると消えます.

ぜんぜん

ちなみにMacOS環境です.
何もせずに matplotlib.get_backend() すると "MacOS" と出るのでバックエンドの違いによるなにかなのかなあと思っています.