国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

掌握Python庫的Bokeh,就能讓你的交互炫目可視化

這篇具有很好參考價值的文章主要介紹了掌握Python庫的Bokeh,就能讓你的交互炫目可視化。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

本文分享自華為云社區(qū)《Bokeh圖形魔法:掌握繪圖基礎(chǔ)與高級技巧,定制炫目可視化》,作者: 檸檬味擁抱。

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

安裝Bokeh庫

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

pip install bokeh

Bokeh繪圖基礎(chǔ)

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

基礎(chǔ)圖形繪制

首先,我們來看一個簡單的例子,繪制一個散點圖:

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

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

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

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

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

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

完善圖形

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

# 添加軸標簽
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)

通過以上代碼,我們在圖形上方添加了X軸和Y軸的標簽,并在左上角添加了圖例。

實例演示

讓我們通過一個實際案例,展示如何使用Bokeh進行更復(fù)雜的可視化。

案例:股票走勢圖

import yfinance as yf

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

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

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

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

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

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

Bokeh庫高級功能探索

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

1. 工具欄和交互性

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

from bokeh.models import HoverTool

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

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

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

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

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

2. 高級圖形元素

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

# 創(chuàng)建繪圖對象
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ù)鏈接和動態(tài)更新

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

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

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

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

# 回調(diào)函數(shù),根據(jù)滑塊值更新散點大小
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)

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

Bokeh庫與其他庫的整合

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

1. 與Pandas整合

Pandas是一個強大的數(shù)據(jù)分析庫,而Bokeh可以輕松地與Pandas進行整合,實現(xiàn)更便捷的數(shù)據(jù)可視化。

import pandas as pd

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

# 使用Bokeh繪制散點圖
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)

在這個例子中,我們創(chuàng)建了一個Pandas DataFrame,并使用Bokeh的circle函數(shù)繪制了散點圖,其中的數(shù)據(jù)直接來自于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繪圖對象
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的同時,充分利用Matplotlib的豐富繪圖功能。

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

Bokeh提供了bokeh.server模塊,使得你能夠?qū)okeh圖形嵌入到Web應(yīng)用中。這樣,你可以創(chuà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)建繪圖對象和數(shù)據(jù)源
source = ColumnDataSource(data={'x': [1, 2, 3, 4, 5], 'y': [6, 7, 2, 4, 5]})
p = figure(title="動態(tài)散點圖", 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="選擇散點大小")

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)

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

Bokeh庫的主題和樣式定制

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

1. 主題定制

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

from bokeh.themes import built_in_themes

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

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

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

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

2. 樣式定制

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

# 創(chuàng)建繪圖對象
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)

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

3. 自定義工具提示

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

from bokeh.models import HoverTool

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

# 繪制散點圖
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)

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

總結(jié)

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

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

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

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

?文章來源地址http://www.zghlxwxcb.cn/news/detail-840156.html

點擊關(guān)注,第一時間了解華為云新鮮技術(shù)~

?

到了這里,關(guān)于掌握Python庫的Bokeh,就能讓你的交互炫目可視化的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 掌握這5款 Edge插件,讓你的瀏覽器使用更高效!

    掌握這5款 Edge插件,讓你的瀏覽器使用更高效!

    您好,今天我想向您推薦兩款不常用的 Edge 插件,它們可以幫助您更高效地瀏覽網(wǎng)頁和管理標簽頁。這些插件可能不像一些常見的插件那樣廣為人知,但它們的功能卻非常實用。 IHome新標簽頁插件 下載地址: https://microsoftedge.microsoft.com/addons/detail/ihome%E5%8E%9Fbdtab%E6%96%B0%E6%A0%

    2024年02月04日
    瀏覽(25)
  • 這個牛逼的Python模塊,能讓你輕松模擬并記錄鍵盤操作(附零基礎(chǔ)學(xué)習(xí)資料)

    這個牛逼的Python模塊,能讓你輕松模擬并記錄鍵盤操作(附零基礎(chǔ)學(xué)習(xí)資料)

    模擬鍵盤操作執(zhí)行自動化任務(wù),我們常用的有 pyautowin 等自動化操作模塊。但是這些模塊有一個很大的缺點,編譯的時候非常依賴 windows 的C語言底層模塊。 (文末送福利) 今天介紹的這個模塊叫做 keyboard 它有一個最大的優(yōu)點:純Python原生開發(fā),編譯時完全不需要依賴C語言模

    2024年02月13日
    瀏覽(20)
  • AI文生圖:從零到逼真-掌握技巧,讓你的AI圖像生成更出色 Part I

    AI文生圖:從零到逼真-掌握技巧,讓你的AI圖像生成更出色 Part I

    根據(jù)調(diào)查數(shù)據(jù),超過90%的用戶在使用AI文生圖工具時,都期望能夠生成高度逼真的圖像。 經(jīng)過深入的測試和驗證,我們決定撰寫一系列文章,向您展示提示詞技巧以及相關(guān)的命令參數(shù)。通過這些技巧,您將能夠輕松地利用AI工具,制作出令人驚嘆的逼真圖像。 在接下來的五期

    2024年02月22日
    瀏覽(23)
  • 【W(wǎng)indows】不要讓你的win鍵落灰!掌握常用的組合快捷鍵,使用電腦更高效了

    【W(wǎng)indows】不要讓你的win鍵落灰!掌握常用的組合快捷鍵,使用電腦更高效了

    Windows 操作系統(tǒng)提供了豐富的鍵盤快捷鍵,能夠大幅提高工作效率和操作便利性。在此介紹一些與 Win 鍵相關(guān)的常用快捷鍵,幫助你更好地利用 Windows 系統(tǒng)。想要在使用電腦時更高效嗎?掌握常用的組合快捷鍵,讓你的 Win 鍵從此不再落灰!這些快捷鍵可以讓你在操作系統(tǒng)中快

    2024年02月15日
    瀏覽(22)
  • 一文弄懂Vue與Servlet的交互:讓你的大學(xué)課設(shè)變得容易起來

    一文弄懂Vue與Servlet的交互:讓你的大學(xué)課設(shè)變得容易起來

    目前較為流行的套裝是SpringBoot+Vue。SpringBoot操作簡單,僅會使用的話上手非常容易。那么小游你為何逆流而上,要寫一個Vue+Servlet的交互呢? 要知道,CSDN最大的受眾是學(xué)生,而且多數(shù)是大學(xué)生。就目前的形勢而言,大學(xué)里的技術(shù)偏基礎(chǔ),有些甚至已經(jīng)過時,如JSP。而有些老師

    2024年01月20日
    瀏覽(23)
  • Photoshop史上最強更新,動動手指就能讓AI替你修圖

    Photoshop史上最強更新,動動手指就能讓AI替你修圖

    Photoshop 在最新的 Beta 版本中,融入了 Firely 智能 AI 創(chuàng)意填充功能,只要對圖片進行簡單地框選,就能實現(xiàn)生成對象、生成背景、擴展圖像、移除對象以及更多創(chuàng)意功能,支持用自然語言輸入指令,讓 AI 替你完成創(chuàng)意填充。 早在2023年3月份的時候,Adobe 就推出了 Firely(又名螢

    2024年02月13日
    瀏覽(19)
  • 讀什么書能讓你進入高層次

    讀什么書能讓你進入高層次

    “黃金非寶書為寶,萬事皆空善不空。” 我很少看到有人說讀書不好的,但卻很少看到有人讀好書。 好書、好讀書、讀好書,都是很稀缺的。 基本上,我們遇到的每個困惑,都有一本書能夠給出解答。 因為你的困惑并不獨特,有高人解決了它,并寫成了書。 我們不可能認

    2023年04月10日
    瀏覽(16)
  • 【初學(xué)者必讀】能讓你月薪過萬的5大web前端核心技能

    前言 Web前端開發(fā)所涉及的內(nèi)容主要包括W3C標準中的結(jié)構(gòu)、行為和表現(xiàn),那么這三項中我們需要掌握的核心技能是什么呢?看小編來為你揭開謎底的。 HTML發(fā)展歷史有二十多年,歷經(jīng)多次版本更新,HTML5和CSS3的出現(xiàn)又是一次革新。有些人認為前端開發(fā)要掌握的技能簡單,不就是

    2024年02月08日
    瀏覽(24)
  • 9 個讓你的 Python 代碼更快的小技巧

    哈嘍大家好,我是咸魚 我們經(jīng)常聽到 “Python 太慢了”,“Python 性能不行”這樣的觀點。但是,只要掌握一些編程技巧,就能大幅提升 Python 的運行速度。 今天就讓我們一起來看下讓 Python 性能更高的 9 個小技巧 原文鏈接: https://medium.com/techtofreedom/9-fabulous-python-tricks-that-m

    2024年02月03日
    瀏覽(21)
  • chatgpt賦能python:Python數(shù)值互換:讓你的編程更加高效

    Python是一種高級編程語言,其靈活性和易于學(xué)習(xí)的特點使其在科學(xué)計算、數(shù)據(jù)分析和人工智能等領(lǐng)域變得非常流行。作為Python的用戶,很多時候你可能需要將數(shù)值類型之間進行轉(zhuǎn)換,這樣可以提高你的編程效率。在本文中,我們將介紹Python中數(shù)值互換的知識,并提供一些幫助

    2024年02月09日
    瀏覽(24)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包