回答編集履歴

7

修正

2020/08/31 00:17

投稿

tiitoi
tiitoi

スコア21956

test CHANGED
@@ -8,21 +8,13 @@
8
8
 
9
9
  a._axinfo['tick']['linewidth'] = 0
10
10
 
11
-
12
-
13
- for a in [ax.w_xaxis, ax.w_yaxis, ax.w_zaxis]:
14
-
15
- a.line.set_linewidth(0)
16
-
17
- a.set_pane_color((0., 0., 0., 0.))
18
-
19
- #順にRGBA
20
-
21
11
  ```
22
12
 
23
13
 
24
14
 
15
+ 上がエラーの原因です。
16
+
25
- 名前が `_` から始まっている属性、関数というのは外部に公開されていないものなので、バージョン変更で変わってしまった可能性がありますね。
17
+ 名前が `_` から始まっている属性、関数というのは外部に公開されていない (ユーザーが使うことが想定されていない) ものなので、バージョン変更で変わってしまった可能性がありますね。
26
18
 
27
19
  この処理は目盛りの軸を消す処理だと思いますが、`ax.set_axis_off()` で同じことができます。
28
20
 

6

修正

2020/08/31 00:17

投稿

tiitoi
tiitoi

スコア21956

test CHANGED
@@ -58,7 +58,7 @@
58
58
 
59
59
  def draw(event):
60
60
 
61
- fig = plt.figure(figsize=(6, 6))
61
+ fig = plt.figure(figsize=(4, 4))
62
62
 
63
63
 
64
64
 

5

修正

2020/08/31 00:14

投稿

tiitoi
tiitoi

スコア21956

test CHANGED
@@ -70,7 +70,7 @@
70
70
 
71
71
  ax.set_zlim([-1.0, 1.0])
72
72
 
73
- ax.set_axis_off() # 軸を消す
73
+ ax.set_axis_off()
74
74
 
75
75
 
76
76
 
@@ -88,7 +88,7 @@
88
88
 
89
89
  colors = np.zeros((50, 25, 3))
90
90
 
91
- colors[:25] = np.random.rand(3) # 半分の色を変更する
91
+ colors[:25, :] = np.random.rand(3)
92
92
 
93
93
 
94
94
 

4

修正

2020/08/31 00:07

投稿

tiitoi
tiitoi

スコア21956

test CHANGED
@@ -70,7 +70,7 @@
70
70
 
71
71
  ax.set_zlim([-1.0, 1.0])
72
72
 
73
- ax.set_axis_off()
73
+ ax.set_axis_off() # 軸を消す
74
74
 
75
75
 
76
76
 
@@ -88,7 +88,7 @@
88
88
 
89
89
  colors = np.zeros((50, 25, 3))
90
90
 
91
- colors[:25, :] = np.random.rand(3)
91
+ colors[:25] = np.random.rand(3) # 半分の色を変更する
92
92
 
93
93
 
94
94
 

3

修正

2020/08/31 00:05

投稿

tiitoi
tiitoi

スコア21956

test CHANGED
@@ -25,6 +25,10 @@
25
25
  名前が `_` から始まっている属性、関数というのは外部に公開されていないものなので、バージョン変更で変わってしまった可能性がありますね。
26
26
 
27
27
  この処理は目盛りの軸を消す処理だと思いますが、`ax.set_axis_off()` で同じことができます。
28
+
29
+
30
+
31
+ ## サンプルコード
28
32
 
29
33
 
30
34
 

2

修正

2020/08/31 00:03

投稿

tiitoi
tiitoi

スコア21956

test CHANGED
@@ -1,6 +1,34 @@
1
- tkinter 関連のコードを削除して以下のコードでこちらの環境ではエラーが発生しませんでした。
1
+ ```
2
2
 
3
+ for a in [ax.xaxis, ax.yaxis, ax.zaxis]:
4
+
5
+ a.set_ticklabels([])
6
+
7
+ a._axinfo['grid']['linewidth'] = 0
8
+
9
+ a._axinfo['tick']['linewidth'] = 0
10
+
11
+
12
+
13
+ for a in [ax.w_xaxis, ax.w_yaxis, ax.w_zaxis]:
14
+
15
+ a.line.set_linewidth(0)
16
+
17
+ a.set_pane_color((0., 0., 0., 0.))
18
+
19
+ #順にRGBA
20
+
21
+ ```
22
+
23
+
24
+
25
+ 名前が `_` から始まっている属性、関数というのは外部に公開されていないものなので、バージョン変更で変わってしまった可能性がありますね。
26
+
27
+ この処理は目盛りの軸を消す処理だと思いますが、`ax.set_axis_off()` で同じことができます。
28
+
29
+
30
+
3
- matplotlib ジョン: 3.2.2
31
+ 以下ドで tkinter ありで動作しました。
4
32
 
5
33
 
6
34
 
@@ -18,96 +46,78 @@
18
46
 
19
47
  from mpl_toolkits.mplot3d import Axes3D
20
48
 
21
- import random
49
+ import tkinter
22
-
23
-
24
-
25
- fig = plt.figure(figsize=(4, 4))
26
-
27
- ax = fig.gca(projection="3d")
28
-
29
-
30
-
31
- ax.set_xlim([-1.0, 1.0])
32
-
33
- ax.set_ylim([-1.0, 1.0])
34
-
35
- ax.set_zlim([-1.0, 1.0])
36
-
37
-
38
-
39
- for a in [ax.xaxis, ax.yaxis, ax.zaxis]:
40
-
41
- a.set_ticklabels([])
42
-
43
- a._axinfo["grid"]["linewidth"] = 0
44
-
45
- a._axinfo["tick"]["linewidth"] = 0
46
-
47
-
48
-
49
- for a in [ax.w_xaxis, ax.w_yaxis, ax.w_zaxis]:
50
-
51
- a.line.set_linewidth(0)
52
-
53
- a.set_pane_color((0.0, 0.0, 0.0, 0.0))
54
-
55
- # 順にRGBA
56
-
57
-
58
-
59
- ax.set_facecolor("black")
60
-
61
-
62
-
63
- u, v = np.mgrid[0 : 2 * np.pi : 50j, 0 : np.pi : 25j]
64
-
65
-
66
-
67
- x = np.cos(u) * np.sin(v)
68
-
69
- y = np.sin(u) * np.sin(v)
70
-
71
- z = np.cos(v)
72
-
73
-
74
-
75
- a = random.random()
76
-
77
- b = random.random()
78
-
79
- c = random.random()
80
-
81
-
82
-
83
- colors = np.zeros((50, 25, 3))
84
-
85
- for i in range(0, 25):
86
-
87
- for j in range(0, 25):
88
-
89
- colors[i][j][0] = a
90
-
91
- colors[i][j][1] = b
92
-
93
- colors[i][j][2] = c
94
-
95
-
96
-
97
- ax.plot_surface(x, y, z, facecolors=colors, shade=False)
98
-
99
-
100
-
101
- moon = random.randint(-90, 270)
102
50
 
103
51
 
104
52
 
105
53
 
106
54
 
55
+ def draw(event):
56
+
107
- ax.view_init(elev=0, azim=moon)
57
+ fig = plt.figure(figsize=(6, 6))
108
58
 
109
59
 
110
60
 
61
+ ax = fig.gca(projection="3d", facecolor="k")
62
+
63
+ ax.set_xlim([-1.0, 1.0])
64
+
65
+ ax.set_ylim([-1.0, 1.0])
66
+
67
+ ax.set_zlim([-1.0, 1.0])
68
+
69
+ ax.set_axis_off()
70
+
71
+
72
+
73
+ u, v = np.mgrid[0 : 2 * np.pi : 50j, 0 : np.pi : 25j]
74
+
75
+ x = np.cos(u) * np.sin(v)
76
+
77
+ y = np.sin(u) * np.sin(v)
78
+
111
- plt.show()
79
+ z = np.cos(v)
80
+
81
+
82
+
83
+ # (50, 25, 3) の色の配列を作成する。
84
+
85
+ colors = np.zeros((50, 25, 3))
86
+
87
+ colors[:25, :] = np.random.rand(3)
88
+
89
+
90
+
91
+ ax.plot_surface(x, y, z, facecolors=colors, shade=False)
92
+
93
+
94
+
95
+ azim = np.random.randint(-90, 270)
96
+
97
+ ax.view_init(elev=0, azim=azim)
98
+
99
+
100
+
101
+ canvas = FigureCanvasTkAgg(fig, master=root)
102
+
103
+ canvas.get_tk_widget().place(x=0,y=0)
104
+
105
+
106
+
107
+ root = tkinter.Tk()
108
+
109
+ root.geometry("800x600")
110
+
111
+
112
+
113
+ button= tkinter.Button(root, text=u'ボタン',width=15)
114
+
115
+ button.bind("<Button-1>",draw)
116
+
117
+ button.place(x=300,y=450)
118
+
119
+
120
+
121
+ tkinter.mainloop()
112
122
 
113
123
  ```

1

修正

2020/08/30 23:59

投稿

tiitoi
tiitoi

スコア21956

test CHANGED
@@ -1,4 +1,4 @@
1
- 以下のコードでこちらの環境では発生しませんでした。
1
+ tkinter 関連のコードを削除して以下のコードでこちらの環境ではエラーが発生しませんでした。
2
2
 
3
3
  matplotlib のバージョン: 3.2.2
4
4
 
@@ -106,4 +106,8 @@
106
106
 
107
107
  ax.view_init(elev=0, azim=moon)
108
108
 
109
+
110
+
111
+ plt.show()
112
+
109
113
  ```