mplfinance 烛台堆积在图表上而不向前移动

问题描述

Candlestick Chart is being updated ever minute but animation not working correctly

我正在从正在从 websocket 更新的 csv 中获取数据。在图表中,虽然蜡烛正在显示,但它们挤压了蜡烛之间的空间并且变得越来越小。 请让我知道我在做什么错。

    fig = mpf.figure(style='binance',figsize=(12,4))
ax1 = fig.add_subplot(1,1,1)

def animate(ival):
    df = pd.read_csv('bitcoin_data.csv',index_col=0,parse_dates=True)
    df = df[['minute','open','high','low','close']]
    df.minute = pd.to_datetime(df.minute)
    df = df.set_index('minute')

    ax1.clear()
    mpf.plot(df,ax=ax1,type='candlestick',ylabel='price')

ani = animation.FuncAnimation(fig,animate,interval=1000)\

mpf.show()

解决方法

我的猜测是,一段时间后,您试图绘制过多的数据。有关详细信息,请参阅 https://github.com/matplotlib/mplfinance/wiki/Plotting-Too-Much-Data

解决方案是修改您的动画函数以仅绘制数据框中最近的 500 到 700 根蜡烛图。

也许是这样的:

if len(df) > 600:
    df = df.iloc[-600:-1,:] 
mpf.plot(df,ax=ax1,type='candlestick',ylabel='price')

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...