91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

在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
灵山县| 虹口区| 平顺县| 淮滨县| 洞头县| 镇宁| 罗田县| 宁波市| 延长县| 修武县| 北辰区| 威海市| 望谟县| 涞源县| 招远市| 漳州市| 永丰县| 东明县| 郧西县| 蕲春县| 蓬莱市| 呼和浩特市| 永新县| 珲春市| 宜丰县| 武川县| 安康市| 蕉岭县| 镇江市| 军事| 武隆县| 洪湖市| 鲜城| 綦江县| 图片| 洞口县| 平顺县| 新安县| 房山区| 新泰市| 遂溪县|