pandas OHLC 仅随时间绘制高值

pandas OHLC plot only high values with time

我有一个包含以下实时数据的文本文件。

1,16:20:35
2,16:20:40
3,16:21:41
4,16:21:50
5,16:21:52
6,16:22:20
7,16:22:42
8,16:23:44

我只想绘制高值与时间的关系图。以下是我试过的。

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

data = pd.read_csv(('output.txt'), header=0, sep=',', names=['count', 'time'])

data['time'] = pd.to_datetime(data['time'], format='%H:%M:%S')

data = data.set_index(['time'])
df2 = data.resample('1T').ohlc().ffill()
print(df2)
fig, ax = plt.subplots()
df2.plot(time="time", high="high value", ax=ax)
plt.draw()

plt.show()

因为您已经有了 DateTime 索引,您可以简单地将其绘制为:

fig, ax = plt.subplots()
df2[('count',  'high')].plot(ax=ax)

我还建议从 df2 中删除 MultiIndex,因为只需要一层。即:

df2.columns = df2.columns.droplevel(0)
fig, ax = plt.subplots()
df2['high'].plot(ax=ax)