質問編集履歴
3
コード修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -10,11 +10,13 @@
|
|
10
10
|
|
11
11
|
### 発生している問題・エラーメッセージ
|
12
12
|
|
13
|
+
resultの配列が負になるポイントが変曲点とした場合、変曲点にマーカーをつける方法を教えてください。
|
14
|
+
|
13
|
-
|
15
|
+
!](b2b89115a7abe40e5756be2cf2c9401e.png)
|
14
16
|
|
15
17
|
11番目の区間が負になっているので12番目の点(グラフ右)が変曲点ということでしょうか?
|
16
18
|
|
17
|
-
resultの配列→[0.20171338950000001, 0.21015402949999998, 0.19502000350000001, 0.20433273499999999, 0.16845394799999999, 0.168081231, 0.14231983350000002, 0.12233689899999997, 0.08080066050000001, 0.041403474500000009, -0.0056071255000000042, -0.039149066000000003, -0.07469213949999999, -0.11799488900000002, -0.14328871300000001, -0.18012878500000001, -0.17326162
|
19
|
+
resultの配列→[0.20171338950000001, 0.21015402949999998, 0.19502000350000001, 0.20433273499999999, 0.16845394799999999, 0.168081231, 0.14231983350000002, 0.12233689899999997, 0.08080066050000001, 0.041403474500000009, -0.0056071255000000042, -0.039149066000000003, -0.07469213949999999, -0.11799488900000002, -0.14328871300000001, -0.18012878500000001, -0.17326162, -0.20117560449999999, -0.20206969749999998, -0.21288156799999999, -0.2059022455, -0.2068159155, -0.207493024, -0.20301948749999998, -0.18277358499999999]
|
18
20
|
|
19
21
|
|
20
22
|
|
2
コード修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -10,11 +10,13 @@
|
|
10
10
|
|
11
11
|
### 発生している問題・エラーメッセージ
|
12
12
|
|
13
|
-
|
13
|
+
resultの配列が負になるポイントが変曲点とした場合、変曲点にマーカーをつける方法を教えてください。説明](b36809bc1416ad716886e1cc98b5b36a.png)](123118546cd80954c046d5adecfaa80c.png)
|
14
14
|
|
15
|
-
|
15
|
+
11番目の区間が負になっているので12番目の点(グラフ右)が変曲点ということでしょうか?
|
16
16
|
|
17
|
-
resultの配列
|
17
|
+
resultの配列→[0.20171338950000001, 0.21015402949999998, 0.19502000350000001, 0.20433273499999999, 0.16845394799999999, 0.168081231, 0.14231983350000002, 0.12233689899999997, 0.08080066050000001, 0.041403474500000009, -0.0056071255000000042, -0.039149066000000003, -0.07469213949999999, -0.11799488900000002, -0.14328871300000001, -0.18012878500000001, -0.173261625, -0.20117560449999999, -0.20206969749999998, -0.21288156799999999, -0.2059022455, -0.2068159155, -0.207493024, -0.20301948749999998, -0.18277358499999999]
|
18
|
+
|
19
|
+
|
18
20
|
|
19
21
|
|
20
22
|
|
@@ -38,13 +40,7 @@
|
|
38
40
|
|
39
41
|
|
40
42
|
|
41
|
-
fig, (axL, axR) = plt.subplots(ncols=2, figsize=(10,4))
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
for k in range(12
|
43
|
+
for k in range(125,150):
|
48
44
|
|
49
45
|
point=data[k]-data[k-1]/2*h
|
50
46
|
|
@@ -54,31 +50,25 @@
|
|
54
50
|
|
55
51
|
|
56
52
|
|
57
|
-
|
53
|
+
plt.subplot(1,2,1)
|
58
54
|
|
59
|
-
|
55
|
+
plt.plot(data,"o-")
|
60
56
|
|
61
|
-
|
57
|
+
plt.ylim(-1,3)
|
62
|
-
|
63
|
-
axL.set_ylabel("amplitude[V]")
|
64
58
|
|
65
59
|
|
66
60
|
|
61
|
+
plt.subplot(1,2,2)
|
67
62
|
|
63
|
+
plt.plot(data[125:150],"o-")
|
68
64
|
|
69
|
-
axR.plot(data[124:151], "o-")
|
70
|
-
|
71
|
-
|
65
|
+
plt.ylim(-0.5,0.5)
|
72
|
-
|
73
|
-
axR.set_xlabel("time[s]")
|
74
|
-
|
75
|
-
axR.set_ylabel("amplitude[V]")
|
76
66
|
|
77
67
|
|
78
68
|
|
69
|
+
plt.show()
|
79
70
|
|
80
|
-
|
81
|
-
|
71
|
+
print(result)
|
82
72
|
|
83
73
|
```
|
84
74
|
|
@@ -86,7 +76,7 @@
|
|
86
76
|
|
87
77
|
### 試したこと
|
88
78
|
|
89
|
-
|
79
|
+
|
90
80
|
|
91
81
|
|
92
82
|
|
1
コードの追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -2,9 +2,7 @@
|
|
2
2
|
|
3
3
|
pythonを使用して測定したデータの変曲点を求めるシステムを作成したいと思っています
|
4
4
|
|
5
|
-
|
5
|
+
測定データは加算平均処理を行っているので、測定時間のいずれの中から雑音を気にせず単なる変曲点を求めたいです。
|
6
|
-
|
7
|
-

|
8
6
|
|
9
7
|
|
10
8
|
|
@@ -12,9 +10,11 @@
|
|
12
10
|
|
13
11
|
### 発生している問題・エラーメッセージ
|
14
12
|
|
15
|
-
フ
|
13
|
+
グラフを2つ表示させたいのですが実行結果が表示されません。
|
16
14
|
|
15
|
+
エラーは発生していません
|
16
|
+
|
17
|
-
|
17
|
+
resultの配列が負になるポイントが変曲点とした場合、変曲点にマーカーをつける方法を教えてください。
|
18
18
|
|
19
19
|
|
20
20
|
|
@@ -24,37 +24,61 @@
|
|
24
24
|
|
25
25
|
```python
|
26
26
|
|
27
|
-
#テキストファイルを読み込んで波形を表示する
|
28
|
-
|
29
27
|
import numpy as np
|
30
28
|
|
31
29
|
import matplotlib.pyplot as plt
|
32
30
|
|
33
31
|
|
34
32
|
|
35
|
-
t
|
33
|
+
data = np.loadtxt("60-70kasannomi.txt", unpack="True")
|
34
|
+
|
35
|
+
h = 1
|
36
|
+
|
37
|
+
result=[]
|
36
38
|
|
37
39
|
|
38
40
|
|
39
|
-
fig = plt.
|
41
|
+
fig, (axL, axR) = plt.subplots(ncols=2, figsize=(10,4))
|
40
42
|
|
41
43
|
|
42
44
|
|
43
|
-
ax = fig.add_subplot(111)
|
44
45
|
|
45
|
-
ax.plot(time, E, "o-", color="k")
|
46
46
|
|
47
|
-
a
|
47
|
+
for k in range(124,151):
|
48
48
|
|
49
|
-
a
|
49
|
+
point=data[k]-data[k-1]/2*h
|
50
50
|
|
51
|
-
|
51
|
+
result.append(point)
|
52
52
|
|
53
|
-
|
53
|
+
k = k+1
|
54
54
|
|
55
55
|
|
56
56
|
|
57
|
+
axL.plot(data,"o-")
|
58
|
+
|
59
|
+
axL.set_ylim(-1, 3)
|
60
|
+
|
61
|
+
axL.set_xlabel("time[s]")
|
62
|
+
|
63
|
+
axL.set_ylabel("amplitude[V]")
|
64
|
+
|
65
|
+
|
66
|
+
|
67
|
+
|
68
|
+
|
69
|
+
axR.plot(data[124:151], "o-")
|
70
|
+
|
71
|
+
axR.set_ylim(-0.5,0.5)
|
72
|
+
|
73
|
+
axR.set_xlabel("time[s]")
|
74
|
+
|
75
|
+
axR.set_ylabel("amplitude[V]")
|
76
|
+
|
77
|
+
|
78
|
+
|
79
|
+
|
80
|
+
|
57
|
-
|
81
|
+
fig.show()
|
58
82
|
|
59
83
|
```
|
60
84
|
|
@@ -62,93 +86,7 @@
|
|
62
86
|
|
63
87
|
### 試したこと
|
64
88
|
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
```python
|
70
|
-
|
71
|
-
import matplotlib.pyplot as plt
|
72
|
-
|
73
|
-
import numpy as np
|
74
|
-
|
75
|
-
from scipy.ndimage import gaussian_filter
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
def generate_fake_data():
|
82
|
-
|
83
|
-
"""Generate data that looks like an example given."""
|
84
|
-
|
85
|
-
xs = np.arange(0, 25, 0.05)
|
86
|
-
|
87
|
-
ys = - 20 * 1./(1 + np.exp(-(xs - 5.)/0.3))
|
88
|
-
|
89
|
-
m = xs > 7.
|
90
|
-
|
91
|
-
ys[m] = -20.*np.exp(-(xs - 7.)[m] / 5.)
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
# add noise
|
96
|
-
|
97
|
-
ys += np.random.normal(0, 0.2, xs.size)
|
98
|
-
|
99
|
-
return xs, ys
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
def main():
|
106
|
-
|
107
|
-
xs, ys = generate_fake_data()
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
# smooth out noise
|
112
|
-
|
113
|
-
smoothed = gaussian_filter(ys, 3.)
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
# find the point where the signal goes above the background noise
|
118
|
-
|
119
|
-
# level (assumed to be zero here).
|
120
|
-
|
121
|
-
base = 0.
|
122
|
-
|
123
|
-
std = (ys[xs < 3] - base).std()
|
124
|
-
|
125
|
-
m = smoothed < (base - 3. * std)
|
126
|
-
|
127
|
-
x0 = xs[m][0]
|
128
|
-
|
129
|
-
y0 = ys[m][0]
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
plt.plot(xs, ys, '.')
|
134
|
-
|
135
|
-
plt.plot(xs, smoothed, '-')
|
136
|
-
|
137
|
-
plt.plot(x0, y0, 'o')
|
138
|
-
|
139
|
-
plt.show()
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
if __name__ == '__main__':
|
146
|
-
|
147
|
-
main()
|
148
|
-
|
149
|
-
```
|
150
|
-
|
151
|
-
|
89
|
+
前回の質問にコードを追加しました
|
152
90
|
|
153
91
|
|
154
92
|
|