Python使用Bokeh實現(xiàn)交互式圖表的創(chuàng)建
一、Bokeh 簡介
Bokeh 是一個流行的 Python 數(shù)據(jù)可視化庫,可以生成高質(zhì)量的交互式圖表,無論是簡單的線圖、散點圖,還是復(fù)雜的多維面圖、網(wǎng)絡(luò)圖,Bokeh 都能輕松處理。同時,它支持網(wǎng)頁輸出,使得圖表可以輕易的分享和展示。Bokeh 的主要目標(biāo)是為大數(shù)據(jù)和實時數(shù)據(jù)流提供優(yōu)秀的交互式可視化解決方案。
二、安裝與基本使用
使用pip安裝Bokeh非常簡單,只需在終端中運行以下命令:
pip install bokeh
安裝完成后,我們就可以使用 Bokeh 了。以下是一個簡單的示例,演示了如何使用 Bokeh 創(chuàng)建一個簡單的線圖:
from bokeh.plotting import figure, show # 準備數(shù)據(jù) x = [1, 2, 3, 4, 5] y = [6, 7, 2, 3, 6] # 創(chuàng)建一個新的圖 p = figure(title="簡單線圖", x_axis_label='x', y_axis_label='y') # 添加一條線到圖中 p.line(x, y, legend_label="Temp.", line_width=2) # 顯示圖 show(p)
在這個示例中,我們首先從 bokeh.plotting 模塊中導(dǎo)入了 figure 和 show 函數(shù)。然后,我們準備了一些數(shù)據(jù),創(chuàng)建了一個新的圖,向圖中添加了一條線,最后使用 show 函數(shù)來顯示這個圖。
三、添加交互性
Bokeh 的強大之處在于它支持豐富的交互性功能。例如,我們可以添加工具欄、滑動條等交互組件,以便用戶可以控制圖表的顯示方式。以下是一個簡單的例子,展示了如何添加一個滑動條和一個回調(diào)函數(shù)來改變圖表的數(shù)據(jù):
from bokeh.io import curdoc from bokeh.layouts import column from bokeh.models import ColumnDataSource, Slider from bokeh.plotting import figure # 創(chuàng)建一個新的 ColumnDataSource,這將允許我們改變數(shù)據(jù) source = ColumnDataSource(data=dict(x=[1, 2, 3, 4, 5], y=[6, 7, 2, 3, 6])) # 創(chuàng)建一個新的圖 p = figure(title="交互性線圖", x_axis_label='x', y_axis_label='y') p.line('x', 'y', source=source, legend_label="Temp.", line_width=2) # 創(chuàng)建一個滑動條 slider = Slider(start=0, end=10, value=1, step=.1, title="冪") # 創(chuàng)建一個回調(diào)函數(shù),這將會在滑動條的值改變時被調(diào)用 def update_data(attrname, old, new): c = slider.value source.data = dict(x=[1, 2, 3, 4, 5], y=[6*c, 7*c, 2*c, 3*c, 6*c]) # 把回調(diào)函數(shù)添加到滑動條上 slider.on_change('value', update_data) # 將圖和滑動條放到一個布局中 layout = column(slider, p) # 添加布局到當(dāng)前文檔 curdoc().add_root(layout)
在這個示例中,我們首先創(chuàng)建了一個新的 ColumnDataSource,這個對象會存儲我們的數(shù)據(jù),并允許我們改變這些數(shù)據(jù)。然后,我們創(chuàng)建了一個新的圖,并向這個圖中添加了一條線。注意,我們在添加線時,指定了數(shù)據(jù)源為我們之前創(chuàng)建的 ColumnDataSource。
接下來,我們創(chuàng)建了一個滑動條,和一個回調(diào)函數(shù)。這個回調(diào)函數(shù)會在滑動條的值改變時被調(diào)用,而在這個函數(shù)中,我們改變了數(shù)據(jù)源中的數(shù)據(jù)。然后,我們把這個回調(diào)函數(shù)添加到了滑動條上。
最后,我們創(chuàng)建了一個新的布局,將滑動條和圖放在了這個布局中,并添加到了當(dāng)前的文檔中。
四、添加其他視覺元素
除了基本的線圖和交互元素,Bokeh 還提供了許多其他的視覺元素,例如矩形、橢圓、多邊形、線段、楔形、扇形等等。你可以通過 figure 對象的各種方法來添加這些元素。以下是一個示例,展示了如何添加一些這樣的元素:
from bokeh.plotting import figure, show # 創(chuàng)建一個新的圖 p = figure(width=400, height=400) # 添加一些矩形 p.rect(x=[1, 2, 3], y=[1, 2, 3], width=0.2, height=40, color="#CAB2D6") # 添加一些圓 p.circle(x=[1, 2, 3], y=[1, 2, 3], size=20, color="#FF7F00") # 顯示圖 show(p)
在這個示例中,我們首先創(chuàng)建了一個新的圖。然后,我們通過 figure 對象的 rect 方法和 circle 方法添加了一些矩形和圓。最后,我們使用 show 函數(shù)來顯示這個圖。
通過使用 Bokeh 的各種功能,你可以創(chuàng)建出豐富多樣、交互性強的圖表。以上僅僅是其功能的冰山一角,更多的功能等待你去探索。
到此這篇關(guān)于Python使用Bokeh實現(xiàn)交互式圖表的創(chuàng)建的文章就介紹到這了,更多相關(guān)Python Bokeh交互式圖表內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python調(diào)用xlsxwriter創(chuàng)建xlsx的方法
今天小編就為大家分享一篇python調(diào)用xlsxwriter創(chuàng)建xlsx的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-05-05Django 使用easy_thumbnails壓縮上傳的圖片方法
今天小編就為大家分享一篇Django 使用easy_thumbnails壓縮上傳的圖片方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-07-07Python繪圖系統(tǒng)之自定義一個坐標(biāo)列表控件
這篇文章主要為大家詳細介紹了Python如何編寫一個繪圖系統(tǒng),可以實現(xiàn)自定義一個坐標(biāo)列表控件,文中的示例代碼講解詳細,感興趣的可以了解一下2023-08-08python爬蟲爬取股票的北上資金持倉數(shù)據(jù)
這篇文章主要介紹了python爬蟲爬取股票的北上資金持倉數(shù)據(jù),文章基于python的相關(guān)資料展開爬取數(shù)據(jù)的詳細內(nèi)容,具有一定的參考價值,需要的小伙伴可以參考一下2022-05-05Python連接數(shù)據(jù)庫進行數(shù)據(jù)查詢的操作代碼
這篇文章主要介紹了Python連接數(shù)據(jù)庫進行數(shù)據(jù)查詢的操作代碼,本文給大家介紹的非常詳細,感興趣的朋友跟隨小編一起看看吧2024-06-06