我是一个数据可视化的新手,一直在使用Plotly dash来制作仪表盘。

虽然对于少量的图、输入和关系来说,功能是相当不错的,但是当数据集很大或者后端回调有很长很复杂的逻辑时,仪表板显然会变得非常滞后。

我发现plotly.js显然更快,但前端不允许像python后端那样容易使用pandas功能。

这就是为什么我正在寻求学习建立一个高性能的前端和后端,就像TradingView上的那样,它有一个伟大的UI/UX。

所以,我的想法是这样的。

  • 建立一个处理大型数据库的flask后端,并使用类似pandas的libs来处理数据并发回可视化,有效地完成艰苦的工作。

  • 有一个AJAX前台,用输入值触发后台,并更新Plotly图。

    我显然是在重新发明轮子,但Plotly dash对大型仪表盘来说是不可行的。

    还有什么其他的前端软件包用于输入部件,例如滑块、下拉式?

    1 个评论
    我建议先对你的代码进行剖析,以了解什么是慢的。
    python
    reactjs
    pandas
    plotly
    plotly-dash
    Yasserius
    Yasserius
    发布于 2022-04-01
    2 个回答
    Thibault Capelli
    Thibault Capelli
    发布于 2022-04-01
    0 人赞同

    在前端方面,如果你计划使用React,也许你可以考虑使用Recoil来解决渲染的问题。我猜你将不得不存储大的数据数组,这些数据可以由recoil中的atomFamily管理。

    这个库是由Facebook自己开发的。它仍然被标记为实验性的很长一段时间,但看起来相当成熟。 你应该看一下这个主题,特别是这个 response .

    我现在用它来做一些小项目,我对它有很多乐趣。

    Daniel Al Mouiee
    Daniel Al Mouiee
    发布于 2022-04-01
    0 人赞同

    有趣的问题,我相信如果你有效地管理数据,Dash仍然可以成为可视化大型数据集的一个强大工具。

    Some thoughts:

  • Pandas善于处理大数据,其预定义的聚合/查询/预处理函数比说在每一行上使用循环和单一函数更好地优化。确保某些操作不被重复,用Pandas对数据帧进行有效的预处理(即Pandas函数),将使你的仪表盘更加高效。

  •