Bokeh:使用复选框小部件隐藏和显示绘图

2024-02-13

我在将 Widget 回调与 Bokeh 一起使用时遇到一些困难。在复选框小部件的帮助下,我想显示/隐藏相应的绘图。

与的区别这个问题 https://stackoverflow.com/questions/38705123/using-multiselect-widget-to-hide-and-show-lines-in-bokeh,是我想要每个字形的图(而不是同一图上的所有字形)。为了example https://i.stack.imgur.com/S84tK.png,如果我勾选/取消勾选“b”,我想看到一个新的字形图。

编辑:我的代码的新版本

    from bokeh.io import output_file, show
    from bokeh.layouts import column, widgetbox, row
    from bokeh.models import ColumnDataSource
    from bokeh.plotting import figure
    from bokeh.models.widgets import CheckboxGroup
    from bokeh.models import CustomJS
    import pandas as pd
    import numpy as np

    if __name__ == '__main__':

        # Plot tools
        TOOLS = 'box_select,box_zoom,reset'

        # Data Source
    df = pd.DataFrame(np.random.randn(10, 5), columns=['a', 'b', 'c', 'd', 'e'])
    source = ColumnDataSource(df)

    # Create a new glyph and share ranges
    g = figure(plot_width=1300, plot_height=150, title='a', tools=TOOLS)
    g.circle(source=source, x='a', y='a')

    glyph_list = []

    for glyph in range(0, len(source.column_names)):
        glyph_list.append((figure(plot_width=1300, plot_height=150, x_range=g.x_range, title=source.column_names[glyph],
                                 tools=TOOLS)))

        glyph_list[glyph].circle(source=source, x='a', y=source.column_names[glyph])

    # Select the glyphs to plot
    initial_list = [0] * len(source.column_names)

    ## example of a change
    initial_list[2] = 1

    # Callback
    code = """
            ????
          """

    callback = CustomJS(args=dict(source=source), code=code) #????

    # Add checkbox widget
    checkbox_group = CheckboxGroup(labels=source.column_names,
                                   callback=callback,
                                   active=initial_list)

    plot_list = []
    for i in range(0, len(source.column_names)):
        if checkbox_group.active[i] == 1:
            plot_list.append(glyph_list[i])

    checkbox_group.js_on_change('active', callback) # ???


    layout = row(column(plot_list), widgetbox(checkbox_group))
    show(layout)

使用 Python on_click 处理程序而不是 CustomJS 回调更容易实现它:

from bokeh.layouts import column
from bokeh.models import ColumnDataSource
from bokeh.models.widgets import CheckboxGroup
from bokeh.plotting import curdoc, figure
from bokeh.client import push_session
import pandas as pd
import numpy as np

df = pd.DataFrame(np.random.randn(10, 4), columns = ['a', 'b', 'c', 'd'])
source = ColumnDataSource(df)

def checkbox_click_handler(selected_checkboxes):
    visible_glyphs = layout.children
    for index, glyph in enumerate(glyph_list):
        if index in selected_checkboxes:
            if glyph not in visible_glyphs:
                layout.children.append(glyph)
        else:
            if glyph in visible_glyphs:
                layout.children.remove(glyph)

checkbox_group = CheckboxGroup(labels = list(df.columns.values), active = [0, 1, 2, 3, 4])
checkbox_group.on_click(checkbox_click_handler)

layout = column()
layout.children.append(checkbox_group)

glyph_list = []
for index, letter in enumerate(df.columns.values):
    glyph = figure(plot_width = 800, plot_height = 240, title = letter, name = letter)
    glyph.circle(source = source, x = 'a', y = letter)
    glyph_list.append(glyph)
    layout.children.append(glyph)

session = push_session(document = curdoc())
session.show(layout)
session.loop_until_closed()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Bokeh:使用复选框小部件隐藏和显示绘图 的相关文章

随机推荐

  • 如何根据模型类上返回布尔值的方法的结果来过滤查询集?

    作为我的模型类之一的成员函数 我有一个is visible self user 返回布尔值的方法 根据定义 它需要请求用户 DjangoUser模型 作为输入 我希望能够根据对此方法的响应来过滤查询集 如何使用此函数作为查询集过滤器 对于上
  • keySet().toArray(new Double[0]) 的作用是什么?

    下面的返回有什么作用 我该如何使用该值 private Map
  • 提交表单时如何从 mgt-people-picker 获取输入值

    我在用着mgt people picker从 ASP Net Razor 应用程序中 使用ProxyController从 Graph API 获取所有数据 一切正常 现在我想从我创建的表单中获取信息 其中包含人员列表mgt people
  • ColdFusion 通过 Java 执行 OWASP esapi

    我有一些旧的 ColdFusion 代码 它最初是为 CF9 编写的 但现在运行在 CF 2016 上 应用程序 cfc local esapi createObject java org owasp esapi ESAPI applica
  • Postgresql 使用外键约束截断表

    目前我正在尝试截断在 Postgresql 11 3 上具有外键约束的表 我尝试这样做 BEGIN SET CONSTRAINTS ALL DEFERRED TRUNCATE tableA COMMIT 但收到错误 ERROR cannot
  • UIPageViewController 的大小很奇怪

    我正在使用一个UIPageViewController在我的应用程序中 它工作得很好 但是当我翻页时 下一页似乎在比屏幕大的框架中初始化 翻页时 只有下一页视图的一部分viewController适合屏幕 我正在初始化UIPageViewC
  • 识别 NHibernate 代理类

    我不是 NHibernate 用户 我编写了一个序列化实用程序库 用户记录了一个功能请求 要求我处理 NHibernate 代理类 将它们视为与实际类型相同 目前我的代码将它们视为意外继承 并引发异常 代码不会提前了解 NHibernate
  • 将 BytesMessage 转换为字符串?

    最好的转换方式是什么ByteMessage to String 我有以下代码 我们有更干净的方法吗 BytesMessage byteMessage set byteMessage byte byteArr new byte int byt
  • jsTree 禁用某些复选框

    将 jsTree 3 1 0 与复选框插件一起使用是否可以允许并非所有复选框都进行检查 禁用其中一些 我在这里找到了旧版本 jsTree 的解决方案jstree 禁用复选框 https stackoverflow com questions
  • 比较日期时间函数 cypress

    我有一个表单 允许用户输入日期范围 并且输出将仅包含该特定日期的结果 我可以使用 type 函数将日期输入到表单中 但是 我不确定如何检查结果是否在指定的范围内 例如 如果输入的日期是 17 03 2019 我应该能够使用这样的代码检查表中
  • Optaplanner 将客户从有效的 VRP 解决方案中删除

    基于此question https stackoverflow com questions 47913276 optaplanner vrp remove customer from working solution我尝试了以下方法 pub
  • 我该如何为这个不变量编写一个循环?

    这些是查找数组 b h k 最小值的算法的断言 Precondition h lt k lt b length Postcondition b x is the minimum of b h k 这是这个不变量的正确循环吗 不变式 b x
  • 将工具提示保留在浏览器窗口内? (不使用插件)

    我的工具提示代码如下 HTML CSS a tooltip span display none padding 5px border 1px solid 000 background 999 position absolute color
  • 如何使用谷歌地图路径点进行交通

    我知道我们不允许使用谷歌地图 API 路径点进行 TRANSIT 有什么方法 可能 可以解决这个问题 让谷歌地图在路径点中找到指向多个地址的方向 但仅用于 TRANSIT 来自文档 https developers google com m
  • (a==1 && a==2 && a==3) 在 Java 中可以计算为 true 吗?

    我们知道它可以在 JavaScript 中 https stackoverflow com q 48270127 476716 但是在Java中是否可以在下面给出的条件下打印 成功 消息 if a 1 a 2 a 3 System out
  • 跨 pandas 行/回归线应用公式

    我正在尝试在数据框的行上应用公式来获取行中数字的趋势 下面的示例一直有效 直到部分 apply用来 df pd DataFrame np random randn 10 4 columns list ABCD axisvalues list
  • $.ajax删除请求在capybara-webkit中不发送数据参数

    我发现当我通过 capybara webkit 执行 ajax DELETE 请求时 它们没有向控制器发送数据参数 但是 当我使用 selenium 运行测试套件时 数据参数确实被发送 并且测试通过 我的代码如下所示 document on
  • 类型转换和类型断言有什么区别?

    之间的主要区别是什么 v t aType type assertion v aType t type conversion 我应该在哪里使用类型断言或类型转换 类型断言断言t 接口类型 实际上是一个aType and t将是一个aType
  • 以编程方式检测 Android 上是否安装了应用程序

    我已经为我的 Android 应用程序注册了一个 url 方案 假设 myapp host 在我的其他应用程序上 我可以使用 Intent 启动该应用程序 但如何在不启动它的情况下检查第一个应用程序是否已安装 在 iOS 中 这很简单 UI
  • Bokeh:使用复选框小部件隐藏和显示绘图

    我在将 Widget 回调与 Bokeh 一起使用时遇到一些困难 在复选框小部件的帮助下 我想显示 隐藏相应的绘图 与的区别这个问题 https stackoverflow com questions 38705123 using mult