Matplotlib在切换数据源后返回到图形的开头

时间:2018-12-22 09:47:58

标签: python-3.x matplotlib

我的程序在初始化时连接到coinbase服务器,并加载一些历史价格(通常是过去24小时)。这些值存储在名为“ cena”的列表中。之后,第一次绘制图形 完成此程序后,程序将在股票行情通道上打开网络套接字连接,并将所有新价格附加到“中价”列表中。 每次更新后,图形都会重绘。

当来自websocket的第一个(以及每个下一个)更新出现并被绘制时,就会出现问题。突然有一条线可以追溯到起点,而不是从历史数据的结尾部分而是从起点image

绘制图形。

我假设(但我没有任何证据支持这一理论),问题出在我生活在与服务器所在时区不同的某个时区中,而我在那些时区中却混在一起。 / p>

Code responsible for requesting historical data and ploting:
def Preignitor():
    end=(time.time()-3600)
    start=end-1800#86400
    for product_id in produkty:
        PR=Public_Requester()
        un_filtered=PR.Historic_rates_divider(start=start, end=end, skala=900, produkt=product_id)
        time.sleep(1)
        for v in range(len(un_filtered)):
            cena[produkty.index(product_id)].append(un_filtered[v][4])
            czas[produkty.index(product_id)].append(un_filtered[v][0])
def Preignitor_plot(produkty, cena, czas):
    fig=plt.figure()
    for x in range(len(produkty)):
        ax[x]=fig.add_subplot(len(produkty), 1 , 1+x)
        p[x], =ax[x].plot(czas[x], cena[x])
    plt.show(block=False)
def Plot_update(produkty, cena, czas):
    for x in range(len(produkty)):
        p[x].set_data(czas[x],cena[x])
        ax[x].relim()
        ax[x].autoscale_view()
    plt.pause(1e-3)

Code handling the ticker websocket updates:
while True:
    if q.not_empty:       # q is a queue, i use it to handle pasing data between threads    
        dane=q.get()        
        typ=dane.get('type',None)
        if typ=='ticker':
            price=dane.get('price', None)
            pair=dane.get('product_id',None)
            t=dane.get('time', None)            
            if t is not None:
                t=time.mktime(time.strptime(t, '%Y-%m-%dT%H:%M:%S.%fZ'))
                b=True
    if b==True:
        alfa=time.time()
        b=False
        produkt_id=produkty.index(pair)
        cena[produkt_id].append(float(price))
        czas[produkt_id].append(t)

0 个答案:

没有答案