Cycle Index 계산
배터리 테스트와 같은 상황에서, 각 충전 주기를 계산하기 위해 사용될 수 있습니다.
예를 들어, 충전과 방전이 한 주기를 구성한다면,
‘Charge count’를 2로 나누고 1을 더하여 각 주기의 인덱스를 계산할 수 있습니다.
예를 들어, ‘Charge count’가 0과 1은 첫 번째 그룹, 2와 3은 두 번째 그룹, 이런 식으로 그룹을 나누고 싶을 때 유용합니다.
from pathlib import Path
import pandas as pd
import matplotlib.pyplot as plt
import plotly.express as px
import plotly.graph_objects as go
src_path = Path("/Users/onesixx/my/zdata/raw/CALCE/CX2_16/cx2_16_8_12_10.txt")
df = pd.read_csv(src_path, sep='\t', header=0)
df.columns
dd = df[['Charge count', 'mV', 'mA']].copy()
dd['Cycle_Index'] = df['Charge count'] // 2 + 1
fig,ax = plt.subplots()
ax.plot(dd.index, dd['Charge count'], label='Charge count')
ax.plot(dd.index, dd['Cycle_Index'], label='Cycle_Index')
plt.show()
traces=[]
colors = {
'Charge count': {'line': 'grey', 'marker': 'blue'},
'Cycle_Index': {'line': 'grey', 'marker': 'orange'}
}
for col in ['Charge count', 'Cycle_Index']:
traces.append(
go.Scatter( x=dd.index, y=dd[col],
mode = 'lines+markers',
line = dict(width=.5, color=colors[col]['line']),
marker = dict(size=2, color=colors[col]['marker']),
name = col
)
)
layout = go.Layout(
hovermode='x', # x축을 따라 움직이는 세로선
#xaxis=dict(showspikes=True, spikecolor="grey", spikethickness=1),
yaxis=dict(showspikes=True, spikecolor="grey", spikethickness=1),
template='plotly_white'
)
fig = go.Figure(traces, layout)
fig.show()