【问题标题】:Python interactive plotting for large data sets大型数据集的 Python 交互式绘图
【发布时间】:2021-04-05 19:54:36
【问题描述】:

假设我有一个包含 100k 行的数据集(1000 个不同的时间、100 个不同的系列、每个的观察结果以及辅助信息)。我想创建如下内容: (1) 第一张图在 x 轴上有时间,在 y 轴上有不同系列(和标准误差)的平均值。 (2) 根据我们在面板 1 中悬停的时间片(垂直线),显示辅助信息与该时间片的序列值的(可能是向下采样的)散点图。

我为此研究了几个选项:(1) matplotlib + ipywidgets 似乎无法处理它,除非您通过滑块明确选择点。这也不能很好地转化为 html 导出。这并不理想,但可能是可行的。 (2) altair - 这个库非常漂亮,但据我了解,我需要给它整个数据集来处理交互,但它也不能处理超过 5kish 的数据点。这会排除我的用例,对吗?

关于如何进行的任何建议?在目前的情况下,我的要求是不可能的吗?

【问题讨论】:

  • 看看 Plotly。

标签: python matplotlib plot ipywidgets altair


【解决方案1】:

您可以在 Altair 中处理大于 5k 行的数据集,as specified in this section of the docs

我认为最方便的解决方案之一是安装altair_data_server,然后在笔记本和脚本顶部添加alt.data_transformers.enable('data_server')。只要您的 Python 进程正在运行,此服务器就会向 Altair 提供数据,因此无需将所有数据包含在创建的图表规范中,这意味着将避免 5k 错误。主要缺点是,如果您导出为独立的 HTML,它将无法工作,因为您依赖于运行服务器 Python 进程的环境。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-07-27
    • 1970-01-01
    • 1970-01-01
    • 2019-11-11
    • 2013-03-27
    • 2018-10-13
    • 1970-01-01
    相关资源
    最近更新 更多