Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在没有中断时间的情况下绘制数据帧_Python_Pandas_Matplotlib - Fatal编程技术网

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

Python 如何在没有中断时间的情况下绘制数据帧,python,pandas,matplotlib,Python,Pandas,Matplotlib,我从文件中加载了一个pandas数据帧。当我画它时,它用一条直线显示所有时间,但我不需要中间休息时间。怎么办 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_tr

我从文件中加载了一个
pandas
数据帧。当我画它时,它用一条直线显示所有时间,但我不需要中间休息时间。怎么办

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)


它有助于将
日期时间索引
转换为
字符串
表示,如下所示-序列跳转以显示交易中断的“缺失”值:


你能把几段数据上传到一个小文件中,我们可以下载来测试吗?这不是我想要的。我希望它们相互链接。那么
.dropna()
(假设缺少值会导致直线)怎么样?如果你能显示你的数据以便更接近,那会有帮助。我已经尝试了.dropna(),但是有一行……顺便问一下,如何上传我的原始数据文件?你可以在你的行开始之前和之后使用时间戳来做
df.loc[time\u before:time\u after]
,这样你就可以看到你在这些时间点拥有的数据类型。人们会假设这些是
np.nan
,这可能会导致
matplolib
插入
.dropna
建议,但可能是因为其他原因,您得到了一个常量。df.loc['11:30':'13:00']必须为空,因为当时没有交易。但运行这些之后,DF自动添加数据:f_inx=pd.date_range(开始交易时间,结束交易时间,频率=5s');symdata[‘最后价格’].asof(f_inx)
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()