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" と出るのでバックエンドの違いによるなにかなのかなあと思っています.