質問編集履歴
1
内容を改善しました
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,50 +1,36 @@
|
|
1
1
|
### 前提
|
2
2
|
|
3
3
|
以下のような三次元のデータセット(座標x,座標y,座標z,値w)があります。
|
4
|
+
(2020/09/01:データセットをテスト用に変更しました。)
|
4
5
|
|
5
|
-
```
|
6
|
+
```test2
|
6
|
-
21.000000000000000 20.784609690826528 21.000000000000000 0.36762773602405902
|
7
|
-
|
7
|
+
1.0000000000000000 1.0000000000000000 1.0000000000000000 -0.13158839827673241
|
8
|
+
2.0000000000000000 1.0000000000000000 1.0000000000000000 0.71925334812124575
|
9
|
+
3.0000000000000000 1.0000000000000000 1.0000000000000000 0.78471142747083489
|
8
|
-
|
10
|
+
1.0000000000000000 2.0000000000000000 1.0000000000000000 0.80090268277584165
|
9
|
-
|
11
|
+
2.0000000000000000 2.0000000000000000 1.0000000000000000 0.47791159839320740
|
10
|
-
|
12
|
+
3.0000000000000000 2.0000000000000000 1.0000000000000000 -0.66020035502971153
|
13
|
+
1.0000000000000000 3.0000000000000000 1.0000000000000000 0.59567696265775649
|
14
|
+
2.0000000000000000 3.0000000000000000 1.0000000000000000 0.63414183529888790
|
15
|
+
3.0000000000000000 3.0000000000000000 1.0000000000000000 -0.76203127712058638
|
16
|
+
1.0000000000000000 1.0000000000000000 2.0000000000000000 -0.86357330388007059
|
17
|
+
2.0000000000000000 1.0000000000000000 2.0000000000000000 -0.77094770683230540
|
18
|
+
3.0000000000000000 1.0000000000000000 2.0000000000000000 -0.38407329315880157
|
19
|
+
1.0000000000000000 2.0000000000000000 2.0000000000000000 -0.77643663058440127
|
11
|
-
|
20
|
+
2.0000000000000000 2.0000000000000000 2.0000000000000000 0.29485883547339098
|
21
|
+
3.0000000000000000 2.0000000000000000 2.0000000000000000 -0.90345817476125856
|
22
|
+
1.0000000000000000 3.0000000000000000 2.0000000000000000 0.11249311806459295
|
23
|
+
2.0000000000000000 3.0000000000000000 2.0000000000000000 -0.69983754858836478
|
24
|
+
3.0000000000000000 3.0000000000000000 2.0000000000000000 -0.41968109538305576
|
25
|
+
1.0000000000000000 1.0000000000000000 3.0000000000000000 -0.67405952831591942
|
26
|
+
2.0000000000000000 1.0000000000000000 3.0000000000000000 0.17664524847097818
|
27
|
+
3.0000000000000000 1.0000000000000000 3.0000000000000000 0.40055391690706688
|
28
|
+
1.0000000000000000 2.0000000000000000 3.0000000000000000 0.54128168000403831
|
12
|
-
|
29
|
+
2.0000000000000000 2.0000000000000000 3.0000000000000000 0.13337159555716704
|
13
|
-
21.000000000000000 22.516660498395403 21.000000000000000 0.74912909531051797
|
14
|
-
22.000000000000000 22.516660498395403 21.000000000000000 0.96393826365543300
|
15
|
-
23.000000000000000 22.516660498395403 21.000000000000000 0.82253648870482299
|
16
|
-
20.500000000000000 23.382685902179841 21.000000000000000 0.96750099459057604
|
17
|
-
21.500000000000000 23.382685902179841 21.000000000000000 0.54171633834693500
|
18
|
-
22.500000000000000 23.382685902179841 21.000000000000000 -0.49411724598099399
|
19
|
-
23.500000000000000 23.382685902179841 21.000000000000000 0.71008294427895202
|
20
|
-
21.000000000000000 20.784609690826528 22.000000000000000 0.47089478204533203
|
21
|
-
22.000000000000000 20.784609690826528 22.000000000000000 -0.48966440290941199
|
22
|
-
|
30
|
+
3.0000000000000000 2.0000000000000000 3.0000000000000000 0.61191841485256293
|
23
|
-
20.500000000000000 21.650635094610966 22.000000000000000 -0.29231934984993402
|
24
|
-
|
31
|
+
1.0000000000000000 3.0000000000000000 3.0000000000000000 0.19400358833232989
|
25
|
-
22.500000000000000 21.650635094610966 22.000000000000000 0.33588612156110798
|
26
|
-
23.500000000000000 21.650635094610966 22.000000000000000 0.57297344967052499
|
27
|
-
21.000000000000000 22.516660498395403 22.000000000000000 0.76011108493218804
|
28
|
-
22.000000000000000 22.516660498395403 22.000000000000000 0.95215768341148899
|
29
|
-
23.000000000000000 22.516660498395403 22.000000000000000 0.45565677027778401
|
30
|
-
20.500000000000000 23.382685902179841 22.000000000000000 0.83501909968891797
|
31
|
-
21.500000000000000 23.382685902179841 22.000000000000000 0.14404150412601699
|
32
|
-
22.500000000000000 23.382685902179841 22.000000000000000 -0.69902529737479502
|
33
|
-
23.500000000000000 23.382685902179841 22.000000000000000 -0.28290903761085900
|
34
|
-
21.000000000000000 20.784609690826528 23.000000000000000 0.63038968590583500
|
35
|
-
22.000000000000000 20.784609690826528 23.000000000000000 0.15788958679633100
|
36
|
-
23.000000000000000 20.784609690826528 23.000000000000000 -0.85471062141201803
|
37
|
-
20.500000000000000 21.650635094610966 23.000000000000000 0.14517695464640701
|
38
|
-
|
32
|
+
2.0000000000000000 3.0000000000000000 3.0000000000000000 -0.32331996535028329
|
39
|
-
22.500000000000000 21.650635094610966 23.000000000000000 0.48034013680882298
|
40
|
-
|
33
|
+
3.0000000000000000 3.0000000000000000 3.0000000000000000 -0.29791180540293261
|
41
|
-
21.000000000000000 22.516660498395403 23.000000000000000 5.3707461383729387E-002
|
42
|
-
22.000000000000000 22.516660498395403 23.000000000000000 0.69006836749195000
|
43
|
-
23.000000000000000 22.516660498395403 23.000000000000000 0.78132223797143197
|
44
|
-
20.500000000000000 23.382685902179841 23.000000000000000 0.80988507635854401
|
45
|
-
21.500000000000000 23.382685902179841 23.000000000000000 0.70556890542225403
|
46
|
-
22.500000000000000 23.382685902179841 23.000000000000000 -5.6205713949508129E-002
|
47
|
-
23.500000000000000 23.382685902179841 23.000000000000000 -0.49712719738417699
|
48
34
|
```
|
49
35
|
|
50
36
|
このデータを三次元プロットを行うことを考えます。プロット自体はscatter()を用いて以下のように行うことができました。コードは以前に質問させていただいた([matplotlib:三次元ベクトル場に着色をしたい](https://teratail.com/questions/288509))を参考にしています。
|
@@ -69,7 +55,7 @@
|
|
69
55
|
z = []
|
70
56
|
w = []
|
71
57
|
|
72
|
-
f = open('
|
58
|
+
f = open('test2.d')
|
73
59
|
for line in f:
|
74
60
|
data = line.split()
|
75
61
|
x.append(float(data[0]))
|
@@ -87,9 +73,8 @@
|
|
87
73
|
```
|
88
74
|
|
89
75
|
結果は以下のようになります。
|
90
|
-

|
91
77
|
|
92
|
-
|
93
78
|
###実現したいこと
|
94
79
|
xyz空間中にある各点の値どうしを補間してプロットを行いたいと考えています。
|
95
80
|
このとき補間はなるべく細かく行い、できるだけ連続した面に見えるように行いたいです。
|
@@ -97,4 +82,11 @@
|
|
97
82
|
###調べたこと
|
98
83
|
二次元系に対しては[Python : 2d contour plot from 3 lists : x, y and rho?](https://stackoverrun.com/ja/q/2346376)などのようにscipy.interpolateを行えばできそうです。これと同じようなことを今回のような3次元の系に対しても行いたいです。
|
99
84
|
|
100
|
-
詳しい方がいらっしゃればよろしくお願いします
|
85
|
+
詳しい方がいらっしゃればよろしくお願いします
|
86
|
+
|
87
|
+
###追記
|
88
|
+
具体的には以下のようなイメージです。
|
89
|
+
写真のように、補間を各面上にある点に対して行う(下の画像中の黒の点を追加する、実際の色は値wで補間しているためグラデーションになるはずです。)ことで、連続な一つの面に見ることができます。
|
90
|
+
これと同じ操作を他の5面に対しても行うことで、外側から見た分には値wで連続した面が見えるようになるかと思います。今回は内部の点に関しては補間を適用していただかなくて大丈夫です。
|
91
|
+
|
92
|
+

|