主頁 > 後端開發 > hovertool的基本使用

hovertool的基本使用

2023-06-27 07:41:26 後端開發

hovertool

HoverToolBokeh 庫中的一個工具,它可以在滑鼠懸停在圖上時顯示資料,當滑鼠指標放在圖表的特定部分(比如散點圖的點或者線圖中的線的時候),該工具會顯示與該部分相關的附加資訊,

一般配套使用的是from bokeh.plotting import figure, show

在Python中,plotting 通常指的是資料可視化,即將資料以圖表的形式展現出來,

bokeh.plotting 是 Bokeh 庫中的一個模塊,它提供了構建復雜統計影像的一種簡單且高效的方法,這個模塊包含了很多函式,例如 figure(),來創建新的 Figure 物件;show()save(),用于展示和保存圖表等,

from bokeh.plotting import figure, show

# 創建一個新圖表
p = figure(width=400, height=400)

# 添加一個圓形散點圖
p.circle([1, 2, 3, 4, 5], [6, 7, 2, 4, 5], size=20, color="navy", alpha=0.5)

# 顯示結果
show(p)

image-20230626141130135

現在結合一個python內置的機器學習資料集iris來進行一個描繪,iris 資料集是一個經典的機器學習資料集,它包含了三種鳶尾花(setosa、versicolor和virginica)的四個特征(sepal length、sepal width、petal length 和 petal width)的測量值,這個資料集通常用于分類、資料可視化、資料清洗等機器學習任務的示例,

Bokeh 庫提供了一系列內置的樣本資料集以便于用戶進行資料可視化的實踐和學習,iris 就是其中之一,你可以直接使用這些資料集,而無需自己去收集和整理資料,

HoverTool() 函式創建 Hover 工具,用于在滑鼠懸停在資料點上時顯示資料,然后,我們將HoverTool 物件的tooltips 屬性設定為要顯示的文本,將HoverTool 物件的renderers 引數設定為將渲染 Hover 工具的scatter 物件,

# 匯入需要的模塊
from bokeh.plotting import figure, show, output_file
from bokeh.models import HoverTool, ColumnDataSource
from bokeh.sampledata.iris import flowers

# 指定輸出html檔案名
output_file("iris.html")

# 為不同種類的花設定顏色
color_map = {'setosa': 'red', 'versicolor': 'green', 'virginica': 'blue'}
flowers['color'] = [color_map[x] for x in flowers['species']]

# 創建ColumnDataSource物件,這樣我們可以在HoverTool中參考列名
source = ColumnDataSource(flowers)

# 添加工具提示(hover tool)
hover = HoverTool(tooltips=[
    ("Species", "@species"),
    ("Sepal width", "@sepal_width"),
    ("Sepal length", "@sepal_length"),
    ("Petal width", "@petal_width"),
    ("Petal length", "@petal_length"),
])

# 創建一個新的繪圖物件,并添加工具提示
p = figure(title = "Iris Morphology", tools=[hover, "pan,wheel_zoom,xbox_select,reset"])

# 繪制散點圖
p.circle('petal_length', 'petal_width', source=source,
         color='color', legend_group='species', fill_alpha=0.2, size=10)

# 顯示繪圖
show(p)

image-20230626143107474

在Bokeh中,@符號用于參考ColumnDataSource物件中的列,

在我們的例子中,"@species"表示從名為"species"的列中獲取資料,同樣,"@sepal_width""@sepal_length""@petal_width""@petal_length"分別表示參考對應的列,

當您將滑鼠懸停在圖上的某個點時,HoverTool工具會根據這些參考從資料源中提取對應的值,并在工具提示框中顯示出來,

所以,在這里,"@species"等都是指向source(一個ColumnDataSource物件)中對應欄位的參考,

在Bokeh中,tools引數用于指定要添加到圖形中的工具,這些工具可以幫助用戶互動地查看和探索資料,在我們的例子中,tools引數包括以下幾項:

  1. hover: 這是一個HoverTool實體,當滑鼠懸停在圖上的某個點時,它會顯示該點的詳細資訊,在我們的例子中,這些資訊包括花的種類(species)和各部分的尺寸(sepal and petal width/length),
  2. "pan": 這個工具允許用戶通過點擊并拖動來平移(即改變視角的位置)圖形,
  3. "wheel_zoom": 這個工具允許用戶通過滾動滑鼠滾輪來放大或縮小圖形,
  4. "xbox_select": 這個工具允許用戶通過拖拽一個矩形框來選擇圖形中的多個點,選中的點會被高亮顯示,
  5. "reset": 這個工具允許用戶重置圖形的視角和任何高亮的選中狀態,恢復到初始狀態,

以上這些工具都將被添加到圖形的工具列中,用戶可以在圖形上方直接看到并使用它們,

Bokeh提供了許多內置的工具以增強圖形的互動性,以下是一些常見的可用工具:

  • "box_select": 使用矩形框選中資料點,
  • "xbox_select""ybox_select": 在x軸或y軸方向上使用矩形框選擇資料點,
  • "crosshair": 在滑鼠懸停位置顯示十字線,
  • "lasso_select": 用自由繪制的套索形狀選擇資料點,
  • "poly_select": 用多邊形選取資料點,
  • "tap": 單擊選擇資料點,
  • "wheel_zoom""xwheel_zoom""ywheel_zoom": 使用滑鼠滾輪在所有軸、x軸或y軸方向進行縮放,
  • "box_zoom""xbox_zoom""ybox_zoom": 用拖動的矩形框來定義縮放范圍,
  • "undo""redo": 撤銷/重做工具列動作,
  • "reset": 重置視圖到初始狀態,
  • "save": 保存影像為PNG格式,
  • "zoom_in""zoom_out": 縮放工具,可以針對所有軸、x軸或y軸,

你可以將這些工具名稱字串添加到tools引數串列中,以將它們添加到圖形的工具列,下面是一個例子:

python復制代碼p = figure(tools="pan,wheel_zoom,box_select,crosshair,reset")

此外,還可以創建自定義的HoverTool或其他工具實體,并將其添加到工具列中,例如:

python復制代碼hover = HoverTool(tooltips=[("Species", "@species")])
p = figure(tools=[hover, "pan,wheel_zoom,reset"])

在這個例子中,當滑鼠懸停在資料點上時,會顯示該點的"Species"值,

本文來自博客園,作者:ivanlee717,轉載請注明原文鏈接:https://www.cnblogs.com/ivanlee717/p/17505580.html

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/555999.html

標籤:Python

上一篇:【numpy基礎】--聚合計算

下一篇:返回列表

標籤雲
其他(161623) Python(38252) JavaScript(25514) Java(18265) C(15238) 區塊鏈(8272) C#(7972) AI(7469) 爪哇(7425) MySQL(7269) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5875) 数组(5741) R(5409) Linux(5347) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4606) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2437) ASP.NET(2404) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) .NET技术(1985) HtmlCss(1972) 功能(1967) Web開發(1951) C++(1942) python-3.x(1918) 弹簧靴(1913) xml(1889) PostgreSQL(1881) .NETCore(1863) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 【C++】Microsoft C++、C 和匯編程式檔案

    ......

    uj5u.com 2020-09-10 00:57:23 more
  • 例外宣告

    相比于斷言適用于排除邏輯上不可能存在的狀態,例外通常是用于邏輯上可能發生的錯誤。 例外宣告 Item 1:當函式不可能拋出例外或不能接受拋出例外時,使用noexcept 理由 如果不打算拋出例外的話,程式就會認為無法處理這種錯誤,并且應當盡早終止,如此可以有效地阻止例外的傳播與擴散。 示例 //不可 ......

    uj5u.com 2020-09-10 00:57:27 more
  • Codeforces 1400E Clear the Multiset(貪心 + 分治)

    鏈接:https://codeforces.com/problemset/problem/1400/E 來源:Codeforces 思路:給你一個陣列,現在你可以進行兩種操作,操作1:將一段沒有 0 的區間進行減一的操作,操作2:將 i 位置上的元素歸零。最終問:將這個陣列的全部元素歸零后操作的最少 ......

    uj5u.com 2020-09-10 00:57:30 more
  • UVA11610 【Reverse Prime】

    本人看到此題沒有翻譯,就附帶了一個自己的翻譯版本 思考 這一題,它的第一個要求是找出所有 $7$ 位反向質數及其質因數的個數。 我們應該需要質數篩篩選1~$10^{7}$的所有數,這里就不慢慢介紹了。但是,重讀題,我們突然發現反向質數都是 $7$ 位,而將它反過來后的數字卻是 $6$ 位數,這就說明 ......

    uj5u.com 2020-09-10 00:57:36 more
  • 統計區間素數數量

    1 #pragma GCC optimize(2) 2 #include <bits/stdc++.h> 3 using namespace std; 4 bool isprime[1000000010]; 5 vector<int> prime; 6 inline int getlist(int ......

    uj5u.com 2020-09-10 00:57:47 more
  • C/C++編程筆記:C++中的 const 變數詳解,教你正確認識const用法

    1、C中的const 1、區域const變數存放在堆疊區中,會分配記憶體(也就是說可以通過地址間接修改變數的值)。測驗代碼如下: 運行結果: 2、全域const變數存放在只讀資料段(不能通過地址修改,會發生寫入錯誤), 默認為外部聯編,可以給其他源檔案使用(需要用extern關鍵字修飾) 運行結果: ......

    uj5u.com 2020-09-10 00:58:04 more
  • 【C++犯錯記錄】VS2019 MFC添加資源不懂如何修改資源宏ID

    1. 首先在資源視圖中,添加資源 2. 點擊新添加的資源,復制自動生成的ID 3. 在解決方案資源管理器中找到Resource.h檔案,編輯,使用整個專案搜索和替換的方式快速替換 宏宣告 4. Ctrl+Shift+F 全域搜索,點擊查找全部,然后逐個替換 5. 為什么使用搜索替換而不使用屬性視窗直 ......

    uj5u.com 2020-09-10 00:59:11 more
  • 【C++犯錯記錄】VS2019 MFC不懂的批量添加資源

    1. 打開資源頭檔案Resource.h,在其中預先定義好宏 ID(不清楚其實ID值應該設定多少,可以先新建一個相同的資源項,再在這個資源的ID值的基礎上遞增即可) 2. 在資源視圖中選中專案資源,按F7編輯資源檔案,按 ID 型別 相對路徑的形式添加 資源。(別忘了先把檔案拷貝到專案中的res檔案 ......

    uj5u.com 2020-09-10 01:00:19 more
  • C/C++編程筆記:關于C++的參考型別,專供新手入門使用

    今天要講的是C++中我最喜歡的一個用法——參考,也叫別名。 參考就是給一個變數名取一個變數名,方便我們間接地使用這個變數。我們可以給一個變數創建N個參考,這N + 1個變數共享了同一塊記憶體區域。(參考型別的變數會占用記憶體空間,占用的記憶體空間的大小和指標型別的大小是相同的。雖然參考是一個物件的別名,但 ......

    uj5u.com 2020-09-10 01:00:22 more
  • 【C/C++編程筆記】從頭開始學習C ++:初學者完整指南

    眾所周知,C ++的學習曲線陡峭,但是花時間學習這種語言將為您的職業帶來奇跡,并使您與其他開發人員區分開。您會更輕松地學習新語言,形成真正的解決問題的技能,并在編程的基礎上打下堅實的基礎。 C ++將幫助您養成良好的編程習慣(即清晰一致的編碼風格,在撰寫代碼時注釋代碼,并限制類內部的可見性),并且由 ......

    uj5u.com 2020-09-10 01:00:41 more
最新发布
  • hovertool的基本使用

    # hovertool `HoverTool` 是 `Bokeh` 庫中的一個工具,它可以在滑鼠懸停在圖上時顯示資料。當滑鼠指標放在圖表的特定部分(比如散點圖的點或者線圖中的線的時候),該工具會顯示與該部分相關的附加資訊。 一般配套使用的是`from bokeh.plotting import fi ......

    uj5u.com 2023-06-27 07:41:26 more
  • 【numpy基礎】--聚合計算

    上一篇介紹的**通用計算**是關于多個`numpy`陣列的計算, 本篇介紹的**聚合計算**一般是針對單個資料集的各種統計結果,同樣,使用**聚合函式**,也可以避免繁瑣的回圈陳述句的撰寫。 # 元素的和 陣列中的元素求和也就是合計值。 ## 呼叫方式 **聚合計算**有兩種呼叫方式,一種是面向物件的 ......

    uj5u.com 2023-06-27 07:41:20 more
  • python dict del 和 pop 有什么區別

    del 和 pop 都可以從 Python 字典中洗掉一個鍵值對,不同之處在于它們的回傳值和錯誤處理方式。 del 陳述句可以直接洗掉字典中的一個鍵值對,語法如下: `del dict[key]` del 陳述句沒有回傳值,如果嘗試洗掉不存在的鍵,會拋出 KeyError 例外。 pop 方法可以洗掉字 ......

    uj5u.com 2023-06-27 07:41:16 more
  • 【python基礎】例外

    Python使用被稱為例外的特殊物件來管理程式執行期間發生的錯誤。每當發生執行錯誤時,Python都會創建一個例外物件。如果撰寫了處理該例外的代碼,程式將繼續執行;如果未對例外進行處理,程式將停止,并顯示一個Trackback,其中包含有關例外的報告。 # 1.try-except代碼塊 例外是用t ......

    uj5u.com 2023-06-27 07:41:06 more
  • 我將青春奉獻給了我喜歡的事情,卻讓我無法解決溫

    時間過的很快,3 年的疫情就這么過去了,留下的卻是緊張的社會氛圍。 目前已經在計算機行業 7 年了,記得那是 2015 年,當時我也才 15 歲,正在讀初二。那會特別喜歡別人的網站,比如卡盟,還有代掛等等別人的那些網站,然后我入坑了。我那會百度怎么做一個網站,然后搜出來需要學習 html,那時候,我 ......

    uj5u.com 2023-06-27 07:40:38 more
  • Java 網路編程 —— 安全網路通信

    ## SSL 簡介 SSL(Secure Socket Layer,安全套接字層)是一種保證網路上的兩個節點進行安全通信的協議。IETF(Interet Engineering Task Force)國際組織對 SSL 作了標準化,制定了 RFC2246 規范,并將其稱為傳輸層安全(Transpor ......

    uj5u.com 2023-06-27 07:40:33 more
  • 【技識訓累】Spring Boot中的基礎知識【一】

    博客推行版本更新,成果積累制度,已經寫過的博客還會再次更新,不斷地琢磨,高質量高數量都是要追求的,工匠精神是學習必不可少的精神。因此,大家有何建議歡迎在評論區踴躍發言,你們的支持是我最大的動力,你們敢投,我就敢肝 ......

    uj5u.com 2023-06-27 07:34:59 more
  • 1 java獲取cpu核心數目

    ## java獲取cpu核心數目 >```java >int processors = Runtime.getRuntime().availableProcessors(); >``` ......

    uj5u.com 2023-06-27 07:29:41 more
  • spring啟動流程 (1) 流程概覽

    本文將通過閱讀AnnotationConfigApplicationContext原始碼,分析Spring啟動流程。 # 創建AnnotationConfigApplicationContext ```java AnnotationConfigApplicationContext applicatio ......

    uj5u.com 2023-06-27 07:28:55 more
  • 圖文示例二叉樹的編碼實作程序

    在上一篇文章中,帶大家一起學習認識了樹型資料結構的定義和特點,并特別介紹了二叉樹的遍歷操作,分別有:前序遍歷、中序遍歷、后序遍歷。前中后的核心區別是根據根節點在遍歷程序中的位置決定的,即:根節點在最前面的稱之為中序遍歷,根節點在中間的稱之為中序遍歷,根節點在最后的稱之為后序遍歷。需要大家掌握根據樹形... ......

    uj5u.com 2023-06-26 09:45:45 more