0
1

More than 3 years have passed since last update.

時変データを2値化して変化の時間間隔をもとめる

Posted at
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

#データ読み込み
df = pd.read_excel('sampdata.xlsx')

#変数格納 1行目(時間)と2行目(電圧)
time = df.iloc[:,0]
volt = df.iloc[:,1]

#1,0のデータに変換
volt[volt>1] = 1
volt[volt<1] = 0

#電圧の微分を求める
volt_diff = np.diff(volt.values)

#電圧の微分と時間の数を合わせる
time2 = time[1:]

#電圧の微分が1以上の時間間隔と-1以下の時間間隔を求める
time_diff_p = np.diff(time2.values[volt_diff>0])
time_diff_m = np.diff(time2.values[volt_diff<0])

#グラフ描画
fig = plt.figure(figsize=(6, 4),
                dpi=72,
                facecolor='skyblue',
                linewidth=10,
                edgecolor='green')

ax = fig.add_subplot(1,1,1)
ax.plot(time2[volt_diff>0].values[1:], time_diff_p/np.max(time_diff_p), marker='o', color='tomato', linestyle='None')
ax.plot(time2[volt_diff<0].values[1:], time_diff_m/np.max(time_diff_m), marker='x', color='aqua', linestyle='None')
ax.plot(time, volt, marker='None', color='orange', linestyle='-')

#グラフ保存
fig.savefig('edge.png')
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1