回答編集履歴

1

修正

2020/05/15 14:19

投稿

tiitoi
tiitoi

スコア21956

test CHANGED
@@ -21,3 +21,67 @@
21
21
  root.mainloop()
22
22
 
23
23
  ```
24
+
25
+
26
+
27
+ ## 追記
28
+
29
+
30
+
31
+ plt.figure()、plt.subplots() といった関数は matplotlib 内で tkinter のウィンドウを作ってしまうので、それで衝突している可能性があります。
32
+
33
+ matplotlib で作りたいのは、グラフが描画されたキャンバスであるならば、以下のようにします。
34
+
35
+
36
+
37
+ 1. matplotlib.figure.Figure() で Figure を作成する。
38
+
39
+ 2. Figure.add_subplot(111) で Figure に Axes を追加する。
40
+
41
+
42
+
43
+ こうすれば、matplotlib 内部でウィンドウが作られることはないはずです。
44
+
45
+
46
+
47
+ ```python
48
+
49
+ from matplotlib.lines import Line2D
50
+
51
+ from matplotlib.figure import Figure
52
+
53
+ from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg
54
+
55
+ from tkinter import Tk
56
+
57
+
58
+
59
+ root = Tk()
60
+
61
+
62
+
63
+ fig = Figure()
64
+
65
+ ax = fig.add_subplot(111)
66
+
67
+
68
+
69
+ canvas = FigureCanvasTkAgg(fig, master=root)
70
+
71
+ canvas.get_tk_widget().pack(fill='both', expand=True)
72
+
73
+
74
+
75
+ line = Line2D([0, 1], [0, 1])
76
+
77
+
78
+
79
+ ax.add_line(line)
80
+
81
+ canvas.draw()
82
+
83
+
84
+
85
+ root.mainloop()
86
+
87
+ ```