【问题标题】:Updating ColumnDataSource using a DatePicker widget使用 DatePicker 小部件更新 ColumnDataSource
【发布时间】:2021-06-09 20:41:01
【问题描述】:

我有一个 Bokeh 服务器应用程序,它使用 ColumnDataSource 和两个 DatePicker 小部件来绘制 vbar_stack 图。我想使用 DatePickers 值的范围过滤绘图上显示的数据。 CDS 由以下数据框创建(索引由日期时间值组成):

                              Device1     Device2       Device3
    2020-10-24 H-m-S             0           1            2
    2020-10-25 H-m-S             1           0            1
    2020-10-25 H-m-S             2           0            0
    2020-10-25 H-m-S             0           2            0

我想按特定日期范围过滤数据,所以我制作了另一个数据框,其中仅包含我们从 DatePickers 设置的参数中找到的日期范围内的行(对于本示例,起始范围 Datepicker 的值为 10 /25/2020,所以 10/24 行被过滤掉了):

                                Device1     Device2     Device3
    2020-10-25 H-m-S             1           0            1
    2020-10-25 H-m-S             2           0            0
    2020-10-25 H-m-S             0           2            0

现在,我想在不影响原始数据框的情况下将其传递给绘图。为此,我想使用 Source.data = ColumnDataSource.from_df(data.loc[start:end]).

但是,情节只是一片空白,没有更新。 有什么特定的方法可以将这些数据传递给情节已经在使用的 CDS 吗?我无法理解具体的格式。或者是否有其他我应该尝试的过滤这些数据的方法?

【问题讨论】:

    标签: python pandas filtering bokeh


    【解决方案1】:

    我设法弄清楚了——为了将数据从该数据帧传递到我现有的数据源中,我必须制作一个新的 CDS 并将其更新为原始 CDS,如下所示:

    new_source = ColumnDataSource(selected)
    source.data.update(new_source.data) 
    

    剧情正在更新中!

    【讨论】:

      猜你喜欢
      • 2021-06-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-09
      • 1970-01-01
      • 1970-01-01
      • 2021-03-04
      • 1970-01-01
      相关资源
      最近更新 更多