回答編集履歴
6
d
test
CHANGED
@@ -26,9 +26,9 @@
|
|
26
26
|
|
27
27
|
|
28
28
|
|
29
|
-
orient = np.random.randint(0, 360, 100000)
|
29
|
+
#orient = np.random.randint(0, 360, 100000)
|
30
30
|
|
31
|
-
speed = np.random.randint(0, 900, 100000)
|
31
|
+
#speed = np.random.randint(0, 900, 100000)
|
32
32
|
|
33
33
|
|
34
34
|
|
5
d
test
CHANGED
@@ -74,4 +74,94 @@
|
|
74
74
|
|
75
75
|
numpy.histogram2d() の返り値 H の内容は以下の画像を見るとわかるかと思います。各要素は該当する個数を表しています。
|
76
76
|
|
77
|
+
|
78
|
+
|
77
79
|

|
80
|
+
|
81
|
+
|
82
|
+
|
83
|
+
## 追記
|
84
|
+
|
85
|
+
|
86
|
+
|
87
|
+
(元の角度 + 11.25) mod 360 としてから、ヒストグラムを作成すればよいです。mod をとるのは 元の角度が 350 の場合、350 + 11.25 = 361.25 となるので、361.25 mod 360 = 1.25 とするためです。
|
88
|
+
|
89
|
+
|
90
|
+
|
91
|
+
```
|
92
|
+
|
93
|
+
['-11.25 ~ 11.25',
|
94
|
+
|
95
|
+
'11.25 ~ 33.75',
|
96
|
+
|
97
|
+
'33.75 ~ 56.25',
|
98
|
+
|
99
|
+
'56.25 ~ 78.75',
|
100
|
+
|
101
|
+
'78.75 ~ 101.25',
|
102
|
+
|
103
|
+
'101.25 ~ 123.75',
|
104
|
+
|
105
|
+
'123.75 ~ 146.25',
|
106
|
+
|
107
|
+
'146.25 ~ 168.75',
|
108
|
+
|
109
|
+
'168.75 ~ 191.25',
|
110
|
+
|
111
|
+
'191.25 ~ 213.75',
|
112
|
+
|
113
|
+
'213.75 ~ 236.25',
|
114
|
+
|
115
|
+
'236.25 ~ 258.75',
|
116
|
+
|
117
|
+
'258.75 ~ 281.25',
|
118
|
+
|
119
|
+
'281.25 ~ 303.75',
|
120
|
+
|
121
|
+
'303.75 ~ 326.25',
|
122
|
+
|
123
|
+
'326.25 ~ 348.75']
|
124
|
+
|
125
|
+
```
|
126
|
+
|
127
|
+
|
128
|
+
|
129
|
+
↓
|
130
|
+
|
131
|
+
|
132
|
+
|
133
|
+
```
|
134
|
+
|
135
|
+
['0.0 ~ 22.5',
|
136
|
+
|
137
|
+
'22.5 ~ 45.0',
|
138
|
+
|
139
|
+
'45.0 ~ 67.5',
|
140
|
+
|
141
|
+
'67.5 ~ 90.0',
|
142
|
+
|
143
|
+
'90.0 ~ 112.5',
|
144
|
+
|
145
|
+
'112.5 ~ 135.0',
|
146
|
+
|
147
|
+
'135.0 ~ 157.5',
|
148
|
+
|
149
|
+
'157.5 ~ 180.0',
|
150
|
+
|
151
|
+
'180.0 ~ 202.5',
|
152
|
+
|
153
|
+
'202.5 ~ 225.0',
|
154
|
+
|
155
|
+
'225.0 ~ 247.5',
|
156
|
+
|
157
|
+
'247.5 ~ 270.0',
|
158
|
+
|
159
|
+
'270.0 ~ 292.5',
|
160
|
+
|
161
|
+
'292.5 ~ 315.0',
|
162
|
+
|
163
|
+
'315.0 ~ 337.5',
|
164
|
+
|
165
|
+
'337.5 ~ 360.0']
|
166
|
+
|
167
|
+
```
|
4
d
test
CHANGED
@@ -14,17 +14,21 @@
|
|
14
14
|
|
15
15
|
```python
|
16
16
|
|
17
|
+
import matplotlib.pyplot as plt
|
18
|
+
|
17
19
|
import numpy as np
|
18
20
|
|
19
|
-
import
|
21
|
+
import seaborn as sns # pip install seaborn
|
20
22
|
|
21
23
|
|
22
24
|
|
23
|
-
|
25
|
+
orient, speed = np.loadtxt('test.csv', delimiter=',').T
|
24
26
|
|
25
|
-
# data = np.c_[np.random.randint(0, 360, 100000),
|
26
27
|
|
28
|
+
|
29
|
+
orient = np.random.randint(0, 360, 100000)
|
30
|
+
|
27
|
-
|
31
|
+
speed = np.random.randint(0, 900, 100000)
|
28
32
|
|
29
33
|
|
30
34
|
|
@@ -32,7 +36,7 @@
|
|
32
36
|
|
33
37
|
y_edges = np.linspace(0, 360, 17)
|
34
38
|
|
35
|
-
H = np.histogram2d(d
|
39
|
+
H = np.histogram2d(np.mod(orient + 11.25, 360), speed,
|
36
40
|
|
37
41
|
bins=(y_edges, x_edges))[0].astype(int)
|
38
42
|
|
@@ -40,15 +44,21 @@
|
|
40
44
|
|
41
45
|
|
42
46
|
|
43
|
-
import seaborn as sns # pip install seaborn
|
44
|
-
|
45
47
|
sns.set()
|
46
48
|
|
47
49
|
# 目盛りのラベルを設定する。
|
48
50
|
|
49
|
-
xlabels = ['{} ~ {}'.format(start, end)
|
51
|
+
xlabels = ['{} ~ {}'.format(start, end)
|
50
52
|
|
51
|
-
|
53
|
+
for start, end in zip(x_edges, x_edges[1:])]
|
54
|
+
|
55
|
+
ylabels = ['N', 'NNW', 'NW', 'WNW',
|
56
|
+
|
57
|
+
'W', 'WSW', 'SW', 'SSW',
|
58
|
+
|
59
|
+
'S', 'SSE', 'SE', 'ESE',
|
60
|
+
|
61
|
+
'E', 'ENE', 'NE', 'NNE']
|
52
62
|
|
53
63
|
# ヒートマップを作成する。
|
54
64
|
|
@@ -64,6 +74,4 @@
|
|
64
74
|
|
65
75
|
numpy.histogram2d() の返り値 H の内容は以下の画像を見るとわかるかと思います。各要素は該当する個数を表しています。
|
66
76
|
|
67
|
-
|
68
|
-
|
69
|
-

|
3
c
test
CHANGED
@@ -62,36 +62,8 @@
|
|
62
62
|
|
63
63
|
|
64
64
|
|
65
|
-
可視化する。
|
66
|
-
|
67
65
|
numpy.histogram2d() の返り値 H の内容は以下の画像を見るとわかるかと思います。各要素は該当する個数を表しています。
|
68
66
|
|
69
67
|
|
70
68
|
|
71
|
-
|
72
|
-
|
73
|
-
```python
|
74
|
-
|
75
|
-
import seaborn as sns # pip install seaborn
|
76
|
-
|
77
|
-
sns.set()
|
78
|
-
|
79
|
-
# 目盛りのラベルを設定する。
|
80
|
-
|
81
|
-
xlabels = ['{} ~ {}'.format(start, end) for start, end in zip(velocity_edges, velocity_edges[1:])]
|
82
|
-
|
83
|
-
ylabels = ['{} ~ {}'.format(start, end) for start, end in zip(orient_edges, orient_edges[1:])]
|
84
|
-
|
85
|
-
# ヒートマップを作成する。
|
86
|
-
|
87
|
-
sns.heatmap(H, annot=True, cmap='Reds', square=True,
|
88
|
-
|
89
|
-
xticklabels=xlabels, yticklabels=ylabels)
|
90
|
-
|
91
|
-
plt.show()
|
92
|
-
|
93
|
-
```
|
94
|
-
|
95
|
-
|
96
|
-
|
97
69
|

|
2
d
test
CHANGED
@@ -22,17 +22,41 @@
|
|
22
22
|
|
23
23
|
data = np.loadtxt('test.csv', delimiter=',')
|
24
24
|
|
25
|
+
# data = np.c_[np.random.randint(0, 360, 100000),
|
26
|
+
|
27
|
+
# np.random.randint(0, 900, 100000)]
|
25
28
|
|
26
29
|
|
27
|
-
orient_edges = np.linspace(0, 360, 17)
|
28
30
|
|
29
|
-
|
31
|
+
x_edges = np.arange(0, 901, 100)
|
30
32
|
|
31
|
-
|
33
|
+
y_edges = np.linspace(0, 360, 17)
|
32
34
|
|
35
|
+
H = np.histogram2d(data[:, 0], data[:, 1],
|
36
|
+
|
33
|
-
|
37
|
+
bins=(y_edges, x_edges))[0].astype(int)
|
34
38
|
|
35
39
|
print(H.shape) # (16, 9)
|
40
|
+
|
41
|
+
|
42
|
+
|
43
|
+
import seaborn as sns # pip install seaborn
|
44
|
+
|
45
|
+
sns.set()
|
46
|
+
|
47
|
+
# 目盛りのラベルを設定する。
|
48
|
+
|
49
|
+
xlabels = ['{} ~ {}'.format(start, end) for start, end in zip(x_edges, x_edges[1:])]
|
50
|
+
|
51
|
+
ylabels = ['{} ~ {}'.format(start, end) for start, end in zip(y_edges, y_edges[1:])]
|
52
|
+
|
53
|
+
# ヒートマップを作成する。
|
54
|
+
|
55
|
+
sns.heatmap(H, annot=True, cmap='Reds', fmt='d',
|
56
|
+
|
57
|
+
xticklabels=xlabels, yticklabels=ylabels, cbar=False)
|
58
|
+
|
59
|
+
plt.show()
|
36
60
|
|
37
61
|
```
|
38
62
|
|
@@ -70,4 +94,4 @@
|
|
70
94
|
|
71
95
|
|
72
96
|
|
73
|
-

|
1
d
test
CHANGED
@@ -4,7 +4,7 @@
|
|
4
4
|
|
5
5
|
|
6
6
|
|
7
|
-
1, 2 でやろうとしていることは、データを風
|
7
|
+
1, 2 でやろうとしていることは、データを風向0 ~ 360で16分割し、さらに風速0~900で9分割する2次元ヒストグラムの作成と考えることができます。
|
8
8
|
|
9
9
|
|
10
10
|
|