我在tkinter GUI中有一个pyplot图形,我正在尝试使用实时数据每秒更新candlestick_ohlc
绘图
mySubplot = myFigure.add_subplot(111)
然后用新数据每秒运行一次
mySubplot.clear()
...
repeat all axis formatting
...
candlestick_ohlc(mySubplot, myData.values)
这是非常缓慢的重新格式化我的轴和重画每一支蜡烛时,它只是最近的蜡烛改变
最有效的方法是什么
Tags:
我建议使用新的mplfinance API(
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执行相同操作的需要
就我个人而言,我不会用Tkinter和MPLfinance来做这件事
这是因为:
为了使其“实时”运行,我将使用cocurrent并行运行三个函数。futures,一个函数将从api或通过web抓取获取股票/货币/加密的数据(我不建议这样做,因为延迟和延迟将很高),第二个函数将用于制作烛台图,第三个功能是运行循环以保持gui,并在图形更改时不断更新图形的图片
对于GUI,我可能会使用称为pygame的“游戏引擎”,因为它具有更高的fps,因为它设计用于制作游戏,但是这会使应用程序密集,但会使fps更高。如果你在tkinter中这样做,你会看到在图形改变时帧的闪烁,这真的很烦人
相关问题 更多 >
编程相关推荐