Определения взаимной задержки между двумя рядами
Есть код, который строит в системе координат два графика, первый наложен на второй. Нужно определить взаимную задержку между рядами "time" из one.json и two.json и визуализировать результат. Сейчас я написал скрипт, который строит в одной системе координат два графика из файлов one.json и two.json и первый наложен на второй. Пробовал сделать что-то наподобии :
df['time'].corr(df1['time'])
Но график получается построить только в виде : seaborn.heatmap а нужно что-то наподобие line step, либо plot scatter. Реализума ли такая задача средствами matplotlib ? Не до конца понимаю как это закодить...
Код:
import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.ticker as ticker
import matplotlib.dates as mdates
import matplotlib.patches as mpatches
import seaborn as sn
import json
f = open('one.json') #red line
stage = json.load(f)
f.close()
f1 = open('two.json') #green line
stage_1 = json.load(f1)
f1.close()
df = pd.DataFrame(stage['one']) #red
df1 = pd.DataFrame(stage_1['two']) #green
df['time'] = pd.to_datetime(df['time']) #convert to date_time
df1['time'] = pd.to_datetime(df1['time'])
fig, ax = plt.subplots()
sn.set()
sn.set_style("darkgrid", {'grid.linestyle': '--'})
p = sn.lineplot(x='time',y='value',color='r', data=df, ax=ax, drawstyle='steps-pre')
p1 = sn.lineplot(x='time',y='value',color='g', data=df1, ax=ax, drawstyle='steps-pre')
red_patch = mpatches.Patch(color='red', label='one')
green_patch = mpatches.Patch(color='green', label='two')
ax.legend(handles=[red_patch,green_patch], fontsize=8)
ax.xaxis.set_major_locator(mdates.AutoDateLocator())
ax.xaxis.set_major_formatter(mdates.DateFormatter('%Y.%m.%d.%H.%m.%S.%f'))
fig.autofmt_xdate()
p.xaxis.set_major_locator(ticker.MultipleLocator(3))
p1.xaxis.set_major_locator(ticker.MultipleLocator(3))
p.set_xlabel('time', fontsize = 10)
p.set_ylabel('value', fontsize = 10)
p.tick_params(labelsize=5)
plt.show()
Источник данных 1:
"one": [
{
"time" : "2022-06-20 00:00:03.055",
"value" : 1.598E-4
},
{
"time" : "2022-06-20 00:00:04.859",
"value" : 1.5987E-4
},
{
"time" : "2022-06-20 00:00:04.980",
"value" : 1.5988E-4
},
{
"time" : "2022-06-20 00:00:09.391",
"value" : 1.5989E-4
}
Источник данных 2:
{
"two": [
{
"time" : "2022-06-20 00:00:03.044",
"value" : 1.598E-4
},
{
"time" : "2022-06-20 00:00:04.849",
"value" : 1.5987E-4
},
{
"time" : "2022-06-20 00:00:04.970",
"value" : 1.5988E-4
},
{
"time" : "2022-06-20 00:00:09.383",
"value" : 1.5989E-4
}
