中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

在Bokeh中如何實現跨圖表的數據聯動

小樊
87
2024-05-20 11:53:35
欄目: 編程語言

要在Bokeh中實現跨圖表的數據聯動,可以使用ColumnDataSource來管理數據,并使用CustomJS來編寫JavaScript代碼實現數據聯動。以下是一個簡單的示例:

from bokeh.plotting import figure, show
from bokeh.layouts import gridplot
from bokeh.models import ColumnDataSource, CustomJS

# 創建兩個圖表
p1 = figure(width=300, height=300)
p2 = figure(width=300, height=300)

# 創建數據源
source = ColumnDataSource(data={'x': [1, 2, 3, 4, 5], 'y': [6, 7, 2, 4, 5]})

# 在第一個圖表上繪制散點圖
p1.circle('x', 'y', source=source)

# 在第二個圖表上繪制折線圖
p2.line('x', 'y', source=source)

# 定義JavaScript回調函數
callback = CustomJS(args=dict(source=source), code="""
    // 獲取選中的數據索引
    var selected_index = cb_obj.selected.indices[0];
    
    // 獲取選中的數據
    var data = source.data;
    var x = data['x'][selected_index];
    var y = data['y'][selected_index];
    
    // 更新數據源
    source.data['x'] = [x];
    source.data['y'] = [y];
    source.change.emit();
""")

# 將JavaScript回調函數綁定到第一個圖表上
p1.js_on_event('tap', callback)

# 將兩個圖表放在一個grid中顯示
grid = gridplot([[p1, p2]])

show(grid)

在這個例子中,我們創建了兩個圖表p1p2,并使用同一個數據源source來管理數據。然后,我們定義了一個JavaScript回調函數callback,當用戶在第一個圖表上點擊某個點時,會觸發這個回調函數,更新數據源中的數據,從而實現了跨圖表的數據聯動效果。最后,我們將兩個圖表放在一個grid中顯示。

0
中江县| 尖扎县| 武夷山市| 玉环县| 丰顺县| 临泽县| 榆树市| 泽普县| 布尔津县| 延吉市| 临西县| 皮山县| 宁河县| 神木县| 庄河市| 论坛| 楚雄市| 山丹县| 云浮市| 精河县| 临武县| 墨脱县| 柳林县| 林州市| 青神县| 凯里市| 晴隆县| 南岸区| 自治县| 屏边| 太谷县| 张家口市| 南丹县| 浦北县| 旬阳县| 云林县| 五指山市| 阜平县| 伊宁市| 万州区| 芒康县|