搜尋
首頁後端開發Python教學如何使用Bokeh建立互動式資料視覺化應用

如何使用 Bokeh 建立互動式資料視覺化應用程式

引言:
在當今大數據時代,資料視覺化是非常重要的。透過視覺化技術,我們可以將數據以圖形的形式展現出來,從而更好地理解數據的特徵和趨勢。而 Bokeh 是一個功能強大的 Python 函式庫,它提供了豐富的工具和函數,用於建立互動式資料視覺化應用。本文將介紹如何使用 Bokeh 建立互動式資料視覺化應用,並附上程式碼範例。

一、安裝 Bokeh
首先,我們要安裝 Bokeh 這個函式庫。打開命令列窗口,輸入以下命令:

pip install bokeh

二、基本概念
在開始之前,我們需要了解一些基本概念。 Bokeh 提供了兩個基本形式的介面:低階和高階介面。低階介面是 Bokeh 函式庫的基本構建塊,使用者可以透過它們建立自訂的視覺化元件;而高階介面則是使用更方便和快速的方式來建立常見的視覺化。本文主要介紹高階介面。

Bokeh 以繪圖物件 (plot objects) 為基礎,繪圖物件可以是圖表、圖示、表格或更複雜的組合。我們可以使用 Bokeh 的高階介面來建立和修改這些繪圖物件。要顯示這些對象,我們需要一個輸出模式,有多種選項可供選擇,包括在瀏覽器中顯示、儲存到檔案或產生靜態影像。

三、快速入門
下面,讓我們來實作一個簡單的互動式資料視覺化應用程式。我們以鳶尾花資料集為例,將其視覺化為散點圖,並實現一些交互功能。

首先,我們需要匯入所需的函式庫和模組:

import pandas as pd
from bokeh.plotting import figure, show
from bokeh.io import output_notebook, output_file
from bokeh.models import ColumnDataSource, CategoricalColorMapper, HoverTool

然後,我們載入鳶尾花資料集,並建立一個Bokeh 的繪圖物件:

# 加载鸢尾花数据集
iris = pd.read_csv('iris.csv')

# 创建绘图对象
plot = figure(title='鸢尾花数据集', 
              x_axis_label='花瓣长度', y_axis_label='花瓣宽度',
              plot_width=600, plot_height=400)

接下來,我們將資料集中的資料繪製成散點圖,並使用顏色來表示花的種類:

# 创建颜色映射器
color_mapper = CategoricalColorMapper(factors=['setosa', 'versicolor', 'virginica'], 
                                      palette=['red', 'green', 'blue'])

# 添加散点图
plot.circle(x='petal_length', y='petal_width', 
            color={'field': 'species', 'transform': color_mapper},
            size=10, alpha=0.5, source=ColumnDataSource(iris))

使用上述程式碼,我們繪製了一個散點圖,其中x 軸表示花瓣長度,y軸表示花瓣寬度,並使用顏色來表示花的種類。

接下來,我們加入一些互動功能,例如滑鼠懸停時顯示資料:

# 添加悬停工具
hover = HoverTool(tooltips=[('花的种类', '@species'),
                            ('花瓣长度', '@petal_length'),
                            ('花瓣宽度', '@petal_width')])
plot.add_tools(hover)

使用上述程式碼,當滑鼠懸停在散點上時,將顯示花的種類、花瓣長度和花瓣寬度的資訊。

最後,我們選擇具體的輸出模式,並顯示繪圖物件:

# 在浏览器中显示
output_notebook()

# 显示绘图对象
show(plot)

透過上述步驟,我們成功實現了一個簡單的互動式資料視覺化應用,可以使用滑鼠懸停在散點上查看每個數據點的詳細資訊。

結論:
Bokeh 是一個非常強大的 Python 函式庫,可以幫助我們建立互動式資料視覺化應用程式。本文簡單介紹了使用 Bokeh 的高階介面來建立互動式資料視覺化應用的基本步驟,並附上了程式碼範例。希望讀者能透過本文的介紹,了解 Bokeh 的基本用法,並在實務上靈活運用,建構更進階、更複雜的資料視覺化應用。

以上是如何使用Bokeh建立互動式資料視覺化應用的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
如何使用numpy創建多維數組?如何使用numpy創建多維數組?Apr 29, 2025 am 12:27 AM

使用NumPy創建多維數組可以通過以下步驟實現:1)使用numpy.array()函數創建數組,例如np.array([[1,2,3],[4,5,6]])創建2D數組;2)使用np.zeros(),np.ones(),np.random.random()等函數創建特定值填充的數組;3)理解數組的shape和size屬性,確保子數組長度一致,避免錯誤;4)使用np.reshape()函數改變數組形狀;5)注意內存使用,確保代碼清晰高效。

說明Numpy陣列中'廣播”的概念。說明Numpy陣列中'廣播”的概念。Apr 29, 2025 am 12:23 AM

播放innumpyisamethodtoperformoperationsonArraySofDifferentsHapesbyAutapityallate AligningThem.itSimplifififiesCode,增強可讀性,和Boostsperformance.Shere'shore'showitworks:1)較小的ArraySaraySaraysAraySaraySaraySaraySarePaddedDedWiteWithOnestOmatchDimentions.2)

說明如何在列表,Array.Array和用於數據存儲的Numpy數組之間進行選擇。說明如何在列表,Array.Array和用於數據存儲的Numpy數組之間進行選擇。Apr 29, 2025 am 12:20 AM

forpythondataTastorage,choselistsforflexibilityWithMixedDatatypes,array.ArrayFormeMory-effficityHomogeneousnumericalData,andnumpyArraysForAdvancedNumericalComputing.listsareversareversareversareversArversatilebutlessEbutlesseftlesseftlesseftlessforefforefforefforefforefforefforefforefforefforlargenumerdataSets; arrayoffray.array.array.array.array.array.ersersamiddreddregro

舉一個場景的示例,其中使用Python列表比使用數組更合適。舉一個場景的示例,其中使用Python列表比使用數組更合適。Apr 29, 2025 am 12:17 AM

Pythonlistsarebetterthanarraysformanagingdiversedatatypes.1)Listscanholdelementsofdifferenttypes,2)theyaredynamic,allowingeasyadditionsandremovals,3)theyofferintuitiveoperationslikeslicing,but4)theyarelessmemory-efficientandslowerforlargedatasets.

您如何在Python數組中訪問元素?您如何在Python數組中訪問元素?Apr 29, 2025 am 12:11 AM

toAccesselementsInapyThonArray,useIndIndexing:my_array [2] accessEsthethEthErlement,returning.3.pythonosezero opitedEndexing.1)usepositiveandnegativeIndexing:my_list [0] fortefirstElment,fortefirstelement,my_list,my_list [-1] fornelast.2] forselast.2)

Python中有可能理解嗎?如果是,為什麼以及如果不是為什麼?Python中有可能理解嗎?如果是,為什麼以及如果不是為什麼?Apr 28, 2025 pm 04:34 PM

文章討論了由於語法歧義而導致的Python中元組理解的不可能。建議使用tuple()與發電機表達式使用tuple()有效地創建元組。 (159個字符)

Python中的模塊和包裝是什麼?Python中的模塊和包裝是什麼?Apr 28, 2025 pm 04:33 PM

本文解釋了Python中的模塊和包裝,它們的差異和用法。模塊是單個文件,而軟件包是帶有__init__.py文件的目錄,在層次上組織相關模塊。

Python中的Docstring是什麼?Python中的Docstring是什麼?Apr 28, 2025 pm 04:30 PM

文章討論了Python中的Docstrings,其用法和收益。主要問題:Docstrings對於代碼文檔和可訪問性的重要性。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

WebStorm Mac版

WebStorm Mac版

好用的JavaScript開發工具

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)