我在 tkinter GUI 中有一个 pyplot 图,我正在尝试使用实时数据每秒更新 mplfinance
中的 candlestick_ohlc
图。
mySubplot = myFigure.add_subplot(111)
然后每秒使用新数据运行
mySubplot.clear()
...
repeat all axis formatting
...
candlestick_ohlc(mySubplot, myData.values)
当只有最近发生变化的蜡烛时,重新格式化我的轴并重新绘制每根蜡烛的速度非常慢。
最有效的方法是什么?
最佳答案
就个人而言我不会使用Tkinter和MPLfinance来做到这一点!
这是因为:
- Tkinter 的帧速率非常糟糕,就像我的意思是绝对糟糕一样,您将很幸运通过使用 while 循环不断更改图像来获得 5 fps。
- Tkinter 陈旧且过时,并且没有 Qt 和 GTK 等其他流行 GUI 库所具有的大量有用功能。
- 当您不断使用 MPLfinance 生成图表时,它会非常密集,并且生成图表的速度很慢,这会导致您的交易平台变慢。
- 您的应用程序的文件大小将会很大。
- 数据可能不准确。
为了使其“实时”,我的方法是使用 cocurrent.futures 并行运行三个函数,其中一个函数将从 api 或通过网络抓取获取股票/货币/加密货币的数据(我不建议这样做,因为延迟和滞后会很高),第二个函数将用于制作烛台图,第三个函数将用于运行循环以保持 GUI 并不断更新图形的图片。变化。
对于 GUI,我可能会使用称为 pygame 的“游戏引擎”,因为它具有更高的 fps,因为它旨在制作游戏,但这将使应用程序密集,但会使 fps 更高。如果您在 tkinter 中执行此操作,您会看到随着图形变化而框架闪烁,这确实很烦人。
关于python - 从 mplfinance 重新绘制 Candlestick_ohlc 的最有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68067045/