首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从mplfinance重绘candlestick_ohlc的最有效方法

从mplfinance重绘candlestick_ohlc的最有效方法
EN

Stack Overflow用户
提问于 2021-06-21 11:22:59
回答 2查看 1.3K关注 0票数 1

我在一个tkinter中有一个pyplot图形,并且我试图每秒钟用实时数据从mplfinance中更新mplfinance图。

代码语言:javascript
运行
复制
mySubplot = myFigure.add_subplot(111)

然后每秒钟运行一次新的数据

代码语言:javascript
运行
复制
mySubplot.clear()
...
repeat all axis formatting 
...
candlestick_ohlc(mySubplot, myData.values)

这只是非常缓慢的调整我的轴和重新绘制每一支蜡烛,当它只是最近的蜡烛变化。

做这件事最有效的方法是什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 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做同样的事情。

票数 1
EN

Stack Overflow用户

发布于 2021-06-21 14:14:18

就我个人而言,,我不会用Tkinter和MPLfinance来做这个!

这是因为:

  1. Tkinter的帧速率非常糟糕,我的意思是非常糟糕,您可以幸运地通过使用with循环不断地更改图像,得到5 fps。
  2. Tkinter已经过时,没有其他流行的GUI like所具有的许多有用的功能,比如Qt和G213,当您不断使用它时,它非常密集,而生成图形的速度很慢,这使得您的交易平台变得缓慢。
  3. ,您的应用程序的文件大小将是巨大的。
  4. ,数据将是不准确的。

G 213

要做到这一点,我要做到“实时”的方式是使用cocurrent.futures并行运行三个函数,其中一个函数是从api或web刮取股票/货币/密码上的数据(我不建议这样做,因为延迟和延迟会很高),第二个函数是制作烛台图,第三个函数是运行循环以保持gui,并在图形变化时不断更新图形的图片。

对于GUI,我可能会使用一个名为pygame的“游戏引擎”,因为它有一个更高的fps,因为它设计用来制作游戏,但是这将使应用程序更加密集,但却使fps更高。如果您在tkinter中这样做,您将看到帧的闪烁,因为图形正在改变,这是非常恼人的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68067045

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档