欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python使用Bokeh庫(kù)實(shí)現(xiàn)炫目的交互可視化

 更新時(shí)間:2024年03月15日 09:51:13   作者:檸檬味擁抱  
Bokeh是一個(gè)用于創(chuàng)建交互式可視化圖形的強(qiáng)大Python庫(kù),它不僅易于使用,而且功能強(qiáng)大,適用于各種數(shù)據(jù)可視化需求,本文將介紹Bokeh庫(kù)的繪圖可視化基礎(chǔ)入門,需要的可以了解下

Bokeh是一個(gè)用于創(chuàng)建交互式可視化圖形的強(qiáng)大Python庫(kù)。它不僅易于使用,而且功能強(qiáng)大,適用于各種數(shù)據(jù)可視化需求。本文將介紹Bokeh庫(kù)的繪圖可視化基礎(chǔ)入門,重點(diǎn)說(shuō)明常用的參數(shù),并通過(guò)實(shí)例演示如何在實(shí)際項(xiàng)目中應(yīng)用這些技術(shù)。

安裝Bokeh庫(kù)

首先,確保你已經(jīng)安裝了Bokeh庫(kù)。如果沒(méi)有安裝,可以使用以下命令進(jìn)行安裝:

pip install bokeh

Bokeh繪圖基礎(chǔ)

Bokeh支持多種圖形類型,包括散點(diǎn)圖、線圖、柱狀圖等。在繪制這些圖形時(shí),我們需要關(guān)注一些重要的參數(shù)。

基礎(chǔ)圖形繪制

首先,我們來(lái)看一個(gè)簡(jiǎn)單的例子,繪制一個(gè)散點(diǎn)圖:

from bokeh.plotting import figure, show
from bokeh.io import output_notebook

# 準(zhǔn)備數(shù)據(jù)
x = [1, 2, 3, 4, 5]
y = [6, 7, 2, 4, 5]

# 創(chuàng)建繪圖對(duì)象
p = figure(title="簡(jiǎn)單散點(diǎn)圖", x_axis_label='X軸', y_axis_label='Y軸')

# 繪制散點(diǎn)圖
p.circle(x, y, size=10, color="navy", alpha=0.5)

# 在Jupyter Notebook中顯示圖形
output_notebook()
show(p)

在上述代碼中,我們使用figure函數(shù)創(chuàng)建了一個(gè)繪圖對(duì)象,并使用circle方法繪制了一個(gè)散點(diǎn)圖。size參數(shù)控制點(diǎn)的大小,color參數(shù)定義顏色,alpha參數(shù)設(shè)置透明度。

完善圖形

除了基本的繪圖,Bokeh還支持添加軸標(biāo)簽、圖例等元素,使圖形更加完整。以下是一個(gè)例子:

# 添加軸標(biāo)簽
p.xaxis.axis_label_standoff = 15
p.yaxis.axis_label_standoff = 15

# 添加圖例
p.legend.label_text_font_size = "12pt"
p.legend.location = "top_left"

# 在Jupyter Notebook中顯示圖形
output_notebook()
show(p)

通過(guò)以上代碼,我們?cè)趫D形上方添加了X軸和Y軸的標(biāo)簽,并在左上角添加了圖例。

實(shí)例演示

讓我們通過(guò)一個(gè)實(shí)際案例,展示如何使用Bokeh進(jìn)行更復(fù)雜的可視化。

案例:股票走勢(shì)圖

import yfinance as yf

# 獲取股票數(shù)據(jù)
stock_data = yf.download("AAPL", start="2023-01-01", end="2024-01-01")

# 創(chuàng)建繪圖對(duì)象
p = figure(title="AAPL股票走勢(shì)", x_axis_label='日期', y_axis_label='股價(jià)(美元)', x_axis_type="datetime")

# 繪制線圖
p.line(stock_data.index, stock_data['Close'], line_width=2, color="orange", legend_label="收盤價(jià)")

# 添加圖例和軸標(biāo)簽
p.legend.location = "top_left"
p.xaxis.axis_label_standoff = 15
p.yaxis.axis_label_standoff = 15

# 在Jupyter Notebook中顯示圖形
output_notebook()
show(p)

在這個(gè)例子中,我們使用了yfinance庫(kù)獲取了蘋果公司(AAPL)股票在指定日期范圍內(nèi)的數(shù)據(jù),并使用Bokeh繪制了股票的收盤價(jià)走勢(shì)圖。

Bokeh庫(kù)高級(jí)功能探索

在了解了Bokeh的基礎(chǔ)繪圖技術(shù)后,我們將深入探討一些高級(jí)功能,使得你能夠更靈活、更創(chuàng)造性地進(jìn)行數(shù)據(jù)可視化。

1. 工具欄和交互性

Bokeh提供了豐富的工具欄,可以讓用戶與圖形進(jìn)行交互。下面是一個(gè)包含工具欄的例子:

from bokeh.models import HoverTool

# 創(chuàng)建繪圖對(duì)象
p = figure(title="交互式散點(diǎn)圖", x_axis_label='X軸', y_axis_label='Y軸', tools="pan,box_zoom,reset,save")

# 添加懸停工具
hover = HoverTool(tooltips=[("數(shù)值", "@x, @y")])
p.add_tools(hover)

# 繪制散點(diǎn)圖
p.circle(x, y, size=10, color="navy", alpha=0.5)

# 在Jupyter Notebook中顯示圖形
output_notebook()
show(p)

在上述例子中,我們通過(guò)tools參數(shù)添加了平移、縮放、重置和保存工具,并使用HoverTool添加了懸停提示。

2. 高級(jí)圖形元素

Bokeh支持繪制一些高級(jí)圖形元素,例如矩形、橢圓等。以下是一個(gè)繪制矩形和橢圓的例子:

# 創(chuàng)建繪圖對(duì)象
p = figure(title="矩形和橢圓示例", x_axis_label='X軸', y_axis_label='Y軸')

# 繪制矩形
p.rect(x=[1, 2, 3], y=[4, 5, 6], width=0.2, height=0.2, color="green", alpha=0.7)

# 繪制橢圓
p.ellipse(x=[4, 5, 6], y=[7, 8, 9], width=0.2, height=0.1, color="blue", alpha=0.7)

# 在Jupyter Notebook中顯示圖形
output_notebook()
show(p)

3. 數(shù)據(jù)鏈接和動(dòng)態(tài)更新

Bokeh允許你動(dòng)態(tài)地更新圖形,可以根據(jù)用戶的輸入或外部事件來(lái)實(shí)現(xiàn)。以下是一個(gè)簡(jiǎn)單的例子,演示如何通過(guò)滑塊動(dòng)態(tài)更新散點(diǎn)圖:

from bokeh.models import Slider
from bokeh.layouts import column

# 創(chuàng)建繪圖對(duì)象
p = figure(title="動(dòng)態(tài)散點(diǎn)圖", x_axis_label='X軸', y_axis_label='Y軸')

# 創(chuàng)建滑塊
slider = Slider(start=1, end=10, step=1, value=1, title="選擇散點(diǎn)大小")

# 回調(diào)函數(shù),根據(jù)滑塊值更新散點(diǎn)大小
def update_size(attr, old, new):
    p.circle(x, y, size=new, color="navy", alpha=0.5)

slider.on_change('value', update_size)

# 將圖形和滑塊組合在一起
layout = column(p, slider)

# 在Jupyter Notebook中顯示圖形
output_notebook()
show(layout)

在這個(gè)例子中,滑塊的值變化時(shí),通過(guò)回調(diào)函數(shù)更新了散點(diǎn)的大小,實(shí)現(xiàn)了動(dòng)態(tài)更新效果。,你可以創(chuàng)建出更具吸引力和實(shí)用性的可視化圖形,更好地展示和解釋數(shù)據(jù)。繼續(xù)探索Bokeh的文檔和示例,發(fā)揮其潛力,提升你的數(shù)據(jù)可視化技能。

Bokeh庫(kù)與其他庫(kù)的整合

Bokeh可以與其他Python庫(kù)無(wú)縫整合,進(jìn)一步拓展其功能。在本節(jié)中,我們將介紹Bokeh與Pandas、Matplotlib等庫(kù)的整合,以及如何在Web應(yīng)用中使用Bokeh。

1. 與Pandas整合

Pandas是一個(gè)強(qiáng)大的數(shù)據(jù)分析庫(kù),而B(niǎo)okeh可以輕松地與Pandas進(jìn)行整合,實(shí)現(xiàn)更便捷的數(shù)據(jù)可視化。

import pandas as pd

# 創(chuàng)建一個(gè)Pandas DataFrame
data = pd.DataFrame({'x': [1, 2, 3, 4, 5], 'y': [6, 7, 2, 4, 5]})

# 使用Bokeh繪制散點(diǎn)圖
p = figure(title="Pandas整合示例", x_axis_label='X軸', y_axis_label='Y軸')
p.circle('x', 'y', size=10, color="navy", alpha=0.5, source=data)

# 在Jupyter Notebook中顯示圖形
output_notebook()
show(p)

在這個(gè)例子中,我們創(chuàng)建了一個(gè)Pandas DataFrame,并使用Bokeh的circle函數(shù)繪制了散點(diǎn)圖,其中的數(shù)據(jù)直接來(lái)自于DataFrame。

2. 與Matplotlib整合

如果你已經(jīng)熟悉Matplotlib,并且希望結(jié)合Bokeh的交互性和Matplotlib的繪圖功能,你可以使用bokeh.plottingfrom_bokeh函數(shù)將Bokeh圖形轉(zhuǎn)換為Matplotlib圖形。

from bokeh.plotting import figure, show
from bokeh.io import output_notebook
from bokeh.plotting import from_bokeh

# 創(chuàng)建Bokeh繪圖對(duì)象
p = figure(title="Bokeh與Matplotlib整合示例", x_axis_label='X軸', y_axis_label='Y軸')
p.circle([1, 2, 3, 4, 5], [6, 7, 2, 4, 5], size=10, color="navy", alpha=0.5)

# 在Jupyter Notebook中顯示Bokeh圖形
output_notebook()
show(p)

# 轉(zhuǎn)換為Matplotlib圖形
mpl_fig = from_bokeh(p)

# 在Matplotlib中顯示圖形
import matplotlib.pyplot as plt
plt.show(mpl_fig)

這樣,你可以在使用Bokeh的同時(shí),充分利用Matplotlib的豐富繪圖功能。

3. 在Web應(yīng)用中使用Bokeh

Bokeh提供了bokeh.server模塊,使得你能夠?qū)okeh圖形嵌入到Web應(yīng)用中。這樣,你可以創(chuàng)建交互式、動(dòng)態(tài)的可視化應(yīng)用。

from bokeh.models import ColumnDataSource
from bokeh.models.widgets import Slider
from bokeh.layouts import column
from bokeh.io import curdoc

# 創(chuàng)建繪圖對(duì)象和數(shù)據(jù)源
source = ColumnDataSource(data={'x': [1, 2, 3, 4, 5], 'y': [6, 7, 2, 4, 5]})
p = figure(title="動(dòng)態(tài)散點(diǎn)圖", x_axis_label='X軸', y_axis_label='Y軸')
p.circle('x', 'y', size=10, color="navy", alpha=0.5, source=source)

# 創(chuàng)建滑塊和回調(diào)函數(shù)
slider = Slider(start=1, end=10, step=1, value=1, title="選擇散點(diǎn)大小")

def update_size(attr, old, new):
    source.data = {'x': [1, 2, 3, 4, 5], 'y': [6, 7, 2, 4, 5], 'size': [new]*5}

slider.on_change('value', update_size)

# 將圖形和滑塊組合在一起
layout = column(p, slider)

# 將布局添加到文檔
curdoc().add_root(layout)

通過(guò)上述代碼,你可以使用Bokeh創(chuàng)建一個(gè)交互式Web應(yīng)用。運(yùn)行此腳本后,可以通過(guò)訪問(wèn)http://localhost:5006/在本地查看應(yīng)用。

Bokeh庫(kù)的主題和樣式定制

Bokeh不僅提供了豐富的繪圖功能,還允許用戶根據(jù)需求自定義圖形的主題和樣式,以便更好地與項(xiàng)目風(fēng)格或品牌一致。在本節(jié)中,我們將學(xué)習(xí)如何定制Bokeh圖形的主題和樣式。

1. 主題定制

Bokeh提供了一系列內(nèi)置主題,用戶可以輕松切換以改變圖形的整體外觀。以下是一個(gè)主題定制的簡(jiǎn)單例子:

from bokeh.themes import built_in_themes

# 創(chuàng)建繪圖對(duì)象
p = figure(title="主題定制示例", x_axis_label='X軸', y_axis_label='Y軸')

# 選擇主題
p.theme = built_in_themes['dark_minimal']

# 在Jupyter Notebook中顯示圖形
output_notebook()
show(p)

在這個(gè)例子中,我們選擇了內(nèi)置主題'dark_minimal',你可以根據(jù)實(shí)際需求選擇其他主題,如'light_minimal'、'caliber'等。

2. 樣式定制

Bokeh還允許用戶直接調(diào)整圖形的樣式,包括顏色、線型、字體等。以下是一個(gè)簡(jiǎn)單的樣式定制例子:

# 創(chuàng)建繪圖對(duì)象
p = figure(title="樣式定制示例", x_axis_label='X軸', y_axis_label='Y軸')

# 繪制線圖
p.line([1, 2, 3, 4, 5], [6, 7, 2, 4, 5], line_width=2, line_color="green", line_dash="dashed")

# 設(shè)置字體樣式
p.title.text_font = "times"
p.title.text_font_style = "italic"

# 在Jupyter Notebook中顯示圖形
output_notebook()
show(p)

在這個(gè)例子中,我們使用line_color參數(shù)設(shè)置線的顏色為綠色,使用line_dash參數(shù)設(shè)置線型為虛線,通過(guò)設(shè)置title.text_fonttitle.text_font_style調(diào)整標(biāo)題的字體和樣式。

3. 自定義工具提示

Bokeh允許用戶自定義工具提示的內(nèi)容和樣式,以更好地滿足項(xiàng)目需求。以下是一個(gè)自定義工具提示的例子:

from bokeh.models import HoverTool

# 創(chuàng)建繪圖對(duì)象
p = figure(title="自定義工具提示示例", x_axis_label='X軸', y_axis_label='Y軸')

# 繪制散點(diǎn)圖
scatter = p.circle([1, 2, 3, 4, 5], [6, 7, 2, 4, 5], size=10, color="navy", alpha=0.5)

# 自定義工具提示
hover = HoverTool(tooltips=[("數(shù)值", "@x, @y"), ("額外信息", "自定義信息")], renderers=[scatter])
p.add_tools(hover)

# 在Jupyter Notebook中顯示圖形
output_notebook()
show(p)

在這個(gè)例子中,我們通過(guò)HoverTooltooltips參數(shù)定義了工具提示的內(nèi)容,并通過(guò)renderers參數(shù)指定了應(yīng)用工具提示的圖形元素。

總結(jié)

Bokeh庫(kù)是一個(gè)功能強(qiáng)大、靈活且易于使用的Python可視化庫(kù),適用于各種數(shù)據(jù)可視化需求。本文從基礎(chǔ)入門開(kāi)始,介紹了Bokeh的基本繪圖技術(shù),包括散點(diǎn)圖、線圖、柱狀圖等,詳細(xì)說(shuō)明了常用的參數(shù)和實(shí)例演示。隨后,我們深入探討了Bokeh的高級(jí)功能,包括工具欄、交互性、高級(jí)圖形元素和動(dòng)態(tài)更新,使得讀者能夠更靈活地進(jìn)行數(shù)據(jù)可視化。

進(jìn)一步地,我們探討了Bokeh庫(kù)與其他常用庫(kù)的整合,包括與Pandas、Matplotlib的結(jié)合,以及在Web應(yīng)用中使用Bokeh的方法。這使得Bokeh不僅可以獨(dú)立使用,還可以與其他庫(kù)協(xié)同工作,充分發(fā)揮各個(gè)庫(kù)的優(yōu)勢(shì)。

最后,我們了解了Bokeh庫(kù)的主題和樣式定制,學(xué)習(xí)了如何選擇內(nèi)置主題、調(diào)整樣式和自定義工具提示,以便更好地滿足個(gè)性化的可視化需求。Bokeh的主題和樣式定制功能為用戶提供了更多定制化的空間,使得可視化圖形更符合項(xiàng)目的整體風(fēng)格和品牌。

通過(guò)本文的內(nèi)容,讀者可以建立起對(duì)Bokeh庫(kù)全面的認(rèn)識(shí),從基礎(chǔ)到高級(jí),從整合到定制,為數(shù)據(jù)科學(xué)家和工程師提供了強(qiáng)大的工具,助力更好地理解、展示和傳達(dá)數(shù)據(jù)。繼續(xù)深入學(xué)習(xí)Bokeh的文檔和示例,將有助于更加熟練地運(yùn)用這一強(qiáng)大的可視化工具。

以上就是Python使用Bokeh庫(kù)實(shí)現(xiàn)炫目的交互可視化的詳細(xì)內(nèi)容,更多關(guān)于Python Bokeh交互可視化的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Python實(shí)現(xiàn)處理逆波蘭表達(dá)式示例

    Python實(shí)現(xiàn)處理逆波蘭表達(dá)式示例

    這篇文章主要介紹了Python實(shí)現(xiàn)處理逆波蘭表達(dá)式操作,結(jié)合實(shí)例形式分析了逆波蘭表達(dá)式的概念、原理及Python針對(duì)逆波蘭表達(dá)式的定義與計(jì)算相關(guān)操作技巧,需要的朋友可以參考下
    2018-07-07
  • Python Opencv實(shí)現(xiàn)圖像輪廓識(shí)別功能

    Python Opencv實(shí)現(xiàn)圖像輪廓識(shí)別功能

    這篇文章主要為大家詳細(xì)介紹了Python Opencv實(shí)現(xiàn)圖像輪廓識(shí)別功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-04-04
  • Python存儲(chǔ)與讀寫二進(jìn)制文件的示例代碼

    Python存儲(chǔ)與讀寫二進(jìn)制文件的示例代碼

    本文介紹了如何在Python中使用Numpy將數(shù)組轉(zhuǎn)存為二進(jìn)制文件,并通過(guò)內(nèi)存映射的方式讀取,提供了一個(gè)高效處理大量數(shù)據(jù)的方法,示例代碼展示了完整的存儲(chǔ)和讀取過(guò)程,解釋了頁(yè)大小和數(shù)據(jù)存儲(chǔ)的關(guān)系,適用于需要高性能計(jì)算和數(shù)據(jù)壓縮的場(chǎng)景,感興趣的朋友跟隨小編一起看看吧
    2024-09-09
  • Python中計(jì)算圓周率的方法匯總(方法合集)

    Python中計(jì)算圓周率的方法匯總(方法合集)

    這篇文章主要介紹了Python中計(jì)算圓周率的方法匯總(方法合集),包括使用math庫(kù)中的pi常量,使用級(jí)數(shù)展開(kāi)公式計(jì)算π,本文給大家列舉多種方法幫助大家學(xué)習(xí),需要的朋友可以參考下
    2022-06-06
  • 用Python寫飛機(jī)大戰(zhàn)游戲之pygame入門(4):獲取鼠標(biāo)的位置及運(yùn)動(dòng)

    用Python寫飛機(jī)大戰(zhàn)游戲之pygame入門(4):獲取鼠標(biāo)的位置及運(yùn)動(dòng)

    這篇文章主要介紹了用Python寫飛機(jī)大戰(zhàn)游戲之pygame入門(4):獲取鼠標(biāo)的位置及運(yùn)動(dòng),需要的朋友可以參考下
    2015-11-11
  • Python連接和操作PostgreSQL數(shù)據(jù)庫(kù)的流程步驟

    Python連接和操作PostgreSQL數(shù)據(jù)庫(kù)的流程步驟

    PostgreSQL 是一種開(kāi)源的對(duì)象關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)(ORDBMS),以其強(qiáng)大的功能和穩(wěn)定性而廣受歡迎,本文將詳細(xì)介紹如何使用 Python 連接和操作 PostgreSQL 數(shù)據(jù)庫(kù),需要的朋友可以參考下
    2024-10-10
  • 使用opencv-python如何打開(kāi)USB或者筆記本前置攝像頭

    使用opencv-python如何打開(kāi)USB或者筆記本前置攝像頭

    這篇文章主要介紹了使用opencv-python如何打開(kāi)USB或者筆記本前置攝像頭的過(guò)程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • 詳解Python中映射類型(字典)操作符的概念和使用

    詳解Python中映射類型(字典)操作符的概念和使用

    這篇文章主要介紹了詳解Python中映射類型(字典)操作符的概念和使用,字典是目前Python中唯一的映射類型,需要的朋友可以參考下
    2015-08-08
  • Python 多線程之threading 模塊的使用

    Python 多線程之threading 模塊的使用

    這篇文章主要介紹了Python 多線程之threading 模塊的使用,幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下
    2021-04-04
  • 跟老齊學(xué)Python之集合(set)

    跟老齊學(xué)Python之集合(set)

    本文主要內(nèi)容是要向各位介紹一種新的數(shù)據(jù)類型:集合(set).徹底暈倒了,到底python有多少個(gè)數(shù)據(jù)類型呢?又多出來(lái)了一個(gè).
    2014-09-09

最新評(píng)論