在 Bokeh 中建立簡單的範圍滑塊


Bokeh 是 Python 中一個強大的資料視覺化庫,有助於為網路建立互動式和獨特的視覺化效果。Bokeh 支援各種渲染技術,並提供各種內建工具來建立具有多個圖形的複雜視覺化效果。本文件將指導您完成使用 Bokeh 建立包含多個圖形的繪圖的過程。此繪圖結合了不同的圖形以在單個繪圖中顯示多個數據系列,這提供了一種更有效的方式來理解不同變數之間的關係。

範圍滑塊的主要優勢是什麼?

  • 互動式 - RangeSlider 為使用者提供了一種互動式的方式來調整繪圖的範圍,這對於探索資料和識別趨勢特別有用。

  • 範圍控制 - RangeSlider 允許使用者控制繪圖上顯示的資料範圍,從而更容易放大感興趣的特定區域。

  • 易於使用 - RangeSlider 易於使用,只需幾行程式碼即可新增到 Bokeh 繪圖中。

  • 可定製 - RangeSlider 可以在外觀和行為方面進行自定義,允許開發人員建立適合其特定需求的滑塊。

  • 與其他部件整合 - RangeSlider 可以與其他 Bokeh 部件整合,以建立更復雜和互動式的視覺化效果。

先決條件

在我們深入研究任務之前,期望您的系統上安裝了一些東西 -

推薦設定列表 -

  • pip install pandas, bokeh

  • 預計使用者將能夠訪問任何獨立的 IDE,例如 VS-Code、PyCharm、Atom 或 Sublime text。

  • 也可以使用線上 Python 編譯器,例如 Kaggle.com、Google Cloud 平臺或任何其他編譯器。

  • 更新版本的 Python。在撰寫本文時,我使用了 3.10.9 版本。

  • 瞭解如何使用 Jupyter notebook。

  • 虛擬環境的知識和應用將是有益的,但不是必需的。

  • 還預計使用者將對統計學和數學有很好的理解。

分步指南

匯入 Bokeh 和相關庫

我們首先匯入必要的庫。我們將使用 `bokeh.plotting` 建立圖形,並使用 `bokeh.layouts` 來排列滑塊和圖形。

語法

from bokeh.plotting import figure
from bokeh.layouts import layout
import numpy as np
from bokeh.models import Range1d
from bokeh.models.widgets import RangeSlider
from bokeh.io import show

建立資料

透過定義範圍的起始值和結束值來建立滑塊資料。我們將使用 NumPy 陣列來指定範圍值。

語法

start = 1
end = 10
values = np.arange(start, end+1, 1)

建立範圍滑塊

現在,我們將透過傳入範圍值、初始範圍和步長來建立一個 RangeSlider 物件。我們將設定滑塊的最小和最大範圍值。

語法

range_slider = RangeSlider(start=start, end=end, step=1, value=(start, end))

建立圖形

接下來,我們建立一個圖形物件並新增折線圖。然後,我們將指定折線圖的範圍和域,並使用佈局物件將其放置在頁面上。

語法

plot = figure()
plot.line(x=[1,2,3], y=[1,2,3], line_width=2)
plot.x_range = Range1d(1, 3)
plot.y_range = Range1d(-1, end+1)

建立佈局

最後,我們使用佈局物件來排列滑塊和圖形。

語法

layout = layout([[plot], [range_slider]])

顯示滑塊和圖形

要檢視滑塊和圖形,我們使用 `show` 函式。

語法

show(layout)yout = layout([[plot], [range_slider]])

示例

from bokeh.plotting import figure
from bokeh.layouts import layout
import numpy as np

start = 1
end = 10
values = np.arange(start, end+1, 1)

from bokeh.models.widgets import RangeSlider

range_slider = RangeSlider(start=start, end=end, step=1, value=(start, end))
plot = figure()
plot.line(x=[1,2,3], y=[1,2,3], line_width=2)
plot.x_range = range_slider
plot.y_range = (-1, end+1)

layout = layout([[plot], [range_slider]])
from bokeh.io import show
show(layout)

上述程式碼片段的輸出將生成一個值為 1 到 10 的範圍滑塊。

最終程式,程式碼

from bokeh.plotting import figure
from bokeh.layouts import layout
import numpy as np
from bokeh.models import Range1d
from bokeh.models.widgets import RangeSlider
from bokeh.io import show

start = 1
end = 10
values = np.arange(start, end+1, 1)

range_slider = RangeSlider(start=start, end=end, step=1, value=(start, end))
plot = figure()
plot.line(x=[1,2,3], y=[1,2,3], line_width=2)
plot.x_range = Range1d(1, 3)
plot.y_range = Range1d(-1, end+1)

layout = layout([[plot], [range_slider]])
show(layout)

輸出

在上一節中,我們可以看到 Bokeh 中範圍滑塊的輸出,以及用於更好地理解的示例。

結論

在本教程中,您學習瞭如何在 Bokeh 中建立簡單的範圍滑塊。您建立了一個 RangeSlider、一個 Figure 和一個 Layout,以在折線圖中顯示一系列值,同時允許使用者選擇一系列值。Bokeh 提供了許多靈活性和自定義選項來建立動態和互動式的資料視覺化效果。本教程是使用 Bokeh 構建更復雜互動式視覺化的起點。

更新於:2023 年 4 月 25 日

777 次檢視

啟動您的 職業生涯

透過完成課程獲得認證

開始
廣告

© . All rights reserved.