回答編集履歴

3

情報追加

2018/08/06 08:01

投稿

Fallout_18
Fallout_18

スコア124

test CHANGED
@@ -27,3 +27,75 @@
27
27
  >重ねての質問申し訳ないのですが, こちらのコードではX, Y, Zそれぞれが3次元配列になっていると思います.例えば1つの3次元配列に対して可視化させたい場合, その配列を3つに分割させるといったことを行わなければならないのでしょうか.
28
28
 
29
29
  これどういう意味でしょうか。。。
30
+
31
+ 自分なりのコードをのっけて置きます。
32
+
33
+ ```python
34
+
35
+ import matplotlib.pyplot as plt
36
+
37
+ from mpl_toolkits.mplot3d import Axes3D
38
+
39
+ import numpy as np
40
+
41
+ import matplotlib.colors as colors
42
+
43
+ #############################
44
+
45
+ n=2
46
+
47
+ #x,y,z座標
48
+
49
+ x_list=[i for i in range(2*n+1)]
50
+
51
+ y_list=[i for i in range(2*n+1)]
52
+
53
+ z_list=[i for i in range(2*n+1)]
54
+
55
+ #3次元データ
56
+
57
+ p_map = np.zeros((2*n+1)*(2*n+1)*(2*n+1)).reshape(2*n+1,2*n+1,2*n+1)
58
+
59
+ #適当に代入
60
+
61
+ p_map[0,0,0]=1
62
+
63
+ p_map[1,3,4]=3
64
+
65
+ p_map[3,1,0]=8
66
+
67
+ p_map[2,2,2]=4
68
+
69
+ #3次元プロット
70
+
71
+ fig = plt.figure()
72
+
73
+ ax = fig.add_subplot(111,projection="3d")
74
+
75
+ #ax = Axes3D(fig, rect=(0.1,0.1,0.8,0.8))
76
+
77
+ mask = p_map>0
78
+
79
+ X,Y,Z=np.meshgrid(x_list,y_list,z_list)
80
+
81
+ ax.set_xlabel("x",labelpad=10,fontsize=24)
82
+
83
+ ax.set_ylabel("y",labelpad=10,fontsize=24)
84
+
85
+ ax.set_zlabel("z",labelpad=10,fontsize=24)
86
+
87
+ ax.set_xlim(2*n,0)
88
+
89
+ ax.set_ylim(0,2*n)
90
+
91
+ ax.set_zlim(0,2*n)
92
+
93
+ ax.scatter(X[mask].ravel(),Y[mask].ravel(),Z[mask].ravel(), p_map[mask].ravel(), cmap=plt.hot())
94
+
95
+ plt.show()
96
+
97
+ ```
98
+
99
+ 結果
100
+
101
+ ![イメージ説明](d8c92125c41d5f6fa34df719d9344675.png)

2

文改善

2018/08/06 08:01

投稿

Fallout_18
Fallout_18

スコア124

test CHANGED
@@ -24,8 +24,6 @@
24
24
 
25
25
  の用にプロットすると上手くいくはずです。
26
26
 
27
- >回答ありがとうございます! こちらの環境でも描画できました.
28
-
29
- 重ねての質問申し訳ないのですが, こちらのコードではX, Y, Zそれぞれが3次元配列になっていると思います.例えば1つの3次元配列に対して可視化させたい場合, その配列を3つに分割させるといったことを行わなければならないのでしょうか.
27
+ >重ねての質問申し訳ないのですが, こちらのコードではX, Y, Zそれぞれが3次元配列になっていると思います.例えば1つの3次元配列に対して可視化させたい場合, その配列を3つに分割させるといったことを行わなければならないのでしょうか.
30
28
 
31
29
  これどういう意味でしょうか。。。

1

追加情報

2018/08/06 07:53

投稿

Fallout_18
Fallout_18

スコア124

test CHANGED
@@ -20,6 +20,12 @@
20
20
 
21
21
  plt.show()
22
22
 
23
+ ```
24
+
23
25
  の用にプロットすると上手くいくはずです。
24
26
 
27
+ >回答ありがとうございます! こちらの環境でも描画できました.
28
+
29
+ 重ねての質問申し訳ないのですが, こちらのコードではX, Y, Zそれぞれが3次元配列になっていると思います.例えば1つの3次元配列に対して可視化させたい場合, その配列を3つに分割させるといったことを行わなければならないのでしょうか.
30
+
25
- ```
31
+ これどういう意味でしょうか。。。