質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

1090閲覧

Python の書き方がわからない

izm2192

総合スコア12

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2020/12/24 04:59

編集2021/01/04 15:47

前提・実現したいこと

time 0.03 ID:1,KPHN,942,845,1065,961 time 0.06 ID:1,KPHN,938,841,1062,958 time 0.09 ID:1,KPHN,938,841,1062,958 time 0.12 ID:5,KPHN,956,905,1094,991 time 0.15 ID:5,KPHN,956,905,1094,992 time 0.18 ID:7,KPHN,980,913,1151,1008 time 0.21 ID:7,KPHN,982,914,1151,1007 time 0.24 ID:7,KPHN,975,910,1153,1008 . . .

上のようなデータをホークス過程データとしてプロットしたいです

該当のソースコード

python

1import numpy as np 2import matplotlib.pyplot as plt 3 4# hyperparameters 5mu = 0.1 6alpha = 1.5 7beta = 30 8 9# 10neuton_iter_num = 200 11num_datapoints = 15 12 13# step1 14U = np.random.uniform(0, 1) 15# step2 16t1 = -np.log(U)/mu 17t = [t1] 18 19 20for k in range(num_datapoints): 21 # step3 22 U = np.random.uniform(0, 1) 23 24 # step 4 25 if k == 0: 26 Sk = 1 27 28 u = t[k] - np.log(U)/mu # initial value of iteration 29 for _ in range(neuton_iter_num): 30 fu = np.log(U) + mu*(u-t[k]) + alpha/beta*Sk*(1-np.exp(-beta*(u-t[k]))) 31 fu_dash = mu+alpha*Sk*np.exp(-beta*(u-t[k])) 32 u -= fu/fu_dash 33 34 # step 5 35 t.append(u) 36 Sk = np.exp(-beta*(t[k+1]-t[k]))*Sk + 1 # find S(k+1) 37 38t = np.array(t)/max(t) 39 40# plt.figure(figsize=(20, 10), dpi=50) 41# plt.scatter(t, np.ones(len(t)), facecolors='none', edgecolors='red') 42# plt.show() 43 44 45# intensity 46time = np.linspace(0,1,10000) 47increase = list(map(lambda x: alpha*np.exp(-beta * x), time)) 48intensity = np.zeros(10000*2) 49for timepoints in t: 50 yuko = np.append(np.append(np.zeros(len(time[time<timepoints])), increase), np.zeros(len(time[time>=timepoints]))) 51 intensity += yuko 52 53 54# plt.figure(figsize=(20, 10), dpi=50) 55# plt.plot(time, intensity[:10000]) 56# plt.show() 57 58 59 60fig, ax1 = plt.subplots(figsize=(20, 5)) 61ax2 = ax1.twinx() 62ax1.scatter(t, np.ones(len(t)), facecolors='none', edgecolors='red', marker='*', s=150) 63ax2.plot(time, intensity[:10000], c='b', lw=1) 64plt.show()

試したこと

上のソースは下記のサイトの人の書いているソースコードになります
このような書き方をすればプロットできるんだなとは思いましたがいまいち中身が理解できていません
ソース内でどのようにデータを扱っているかなどを教えていただいたり上のようなデータは工やったら扱えるよみたいなのがあったら教えていただきたいです

補足情報(FW/ツールのバージョンなど)

https://babaye.hatenablog.com/entry/2019/10/17/214442

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

aaaaaaaaaaaaaaaa

投稿2021/01/04 15:48

izm2192

総合スコア12

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問