如何在没有中断的情况下绘制数据帧

2024-09-28 21:28:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我从文件中加载了pandasDataFrame。当我画它时,它用一条直线显示所有的时间,但我不需要中间的休息时间。如何做?你知道吗

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import dateutil,os

str_today='2015-12-23'
pk_file='D:/20151223_SHSE.000001.pk'

start_tradetime=str_today+' 9:30:00';end_tradetime=str_today+' 15:00:00'
f_inx=pd.date_range(start_tradetime,end_tradetime,freq='5s')

symbol='SHSE.000001'

def load_tick_data(pk_file):
    fn=pk_file
    if os.path.exists(fn):
        return pd.read_pickle(fn)
    else:
        return None

symdata=load_tick_data(pk_file)
symdata.head(10)

plt.ion()
plt.figure(1)
ax1 = plt.subplot2grid((4,1), (0,0), colspan=3,rowspan=3)
#draw
symdata['last_price'].asof(f_inx).plot(ax=ax1)

how to remove the line

full ipython notebook runtime


Tags: importtodayosaspltstartfileend
1条回答
网友
1楼 · 发布于 2024-09-28 21:28:18

它有助于将DateTimeIndex转换为string表示,如下所示-序列跳转以显示交易中断的“缺失”值:enter image description here

df = pd.Series(data= np.random.random(size=400), index=pd.date_range(start=datetime(2015,1,1,9,0,0), freq='1Min', periods=400)).cumsum()
df.loc[datetime(2015, 1, 1, 11, 30, 0): datetime(2015, 1, 1, 13, 0, 0)] = np.nan
df.index = df.index.to_series().apply(lambda x: x.strftime('%H:%M'))
df.dropna().plot.line()

相关问题 更多 >