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