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)
我有一个包含以下实时数据的文本文件。
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)