我在一个tkinter中有一个pyplot图形,并且我试图每秒钟用实时数据从mplfinance
中更新mplfinance
图。
mySubplot = myFigure.add_subplot(111)
然后每秒钟运行一次新的数据
mySubplot.clear()
...
repeat all axis formatting
...
candlestick_ohlc(mySubplot, myData.values)
这只是非常缓慢的调整我的轴和重新绘制每一支蜡烛,当它只是最近的蜡烛变化。
做这件事最有效的方法是什么?
发布于 2021-06-21 17:19:51
我建议使用新的mplfinance (mpf.plot()
而不是candlestick_ohlc()
)。它在处理方面可能不会更有效(虽然我怀疑在某种程度上更高效),但就您必须编写的代码数量而言,它肯定更高效,因为新的API为您完成了大量的matplotlib格式和其他工作。
我建议,在新的API使用动画支持功能使用“外部轴模式”。这将允许您与tkinter交互。有关mplfinance中动画的一般示例,请参见https://github.com/matplotlib/mplfinance/blob/master/markdown/animation.md和其中的链接(例如https://github.com/matplotlib/mplfinance/blob/master/examples/mpf_animation_demo2.py)。我认为您将能够将代码从这些示例调整到您需要使用tkinter做同样的事情。
发布于 2021-06-21 14:14:18
就我个人而言,,我不会用Tkinter和MPLfinance来做这个!
这是因为:
G 213
要做到这一点,我要做到“实时”的方式是使用cocurrent.futures并行运行三个函数,其中一个函数是从api或web刮取股票/货币/密码上的数据(我不建议这样做,因为延迟和延迟会很高),第二个函数是制作烛台图,第三个函数是运行循环以保持gui,并在图形变化时不断更新图形的图片。
对于GUI,我可能会使用一个名为pygame的“游戏引擎”,因为它有一个更高的fps,因为它设计用来制作游戏,但是这将使应用程序更加密集,但却使fps更高。如果您在tkinter中这样做,您将看到帧的闪烁,因为图形正在改变,这是非常恼人的。
https://stackoverflow.com/questions/68067045
复制相似问题