深度學習視覺化工具visdom使用
持續創作,加速成長!這是我參與「掘金日新計劃 · 10 月更文挑戰」的第3天,點選檢視活動詳情
1 visdom
1.1 vidsom介紹
- visdom的github主頁:http://github.com/fossasia/visdom
- visdom中文文件參考:http://ptorch.com/news/77.html
Visdom
是一個靈活的工具,用於建立
,組織
和共享實時豐富資料
的視覺化
,支援:
Torch
Numpy
Visdom的目標是促進(遠端)資料的視覺化,重點是支援科學實驗。為你自己和你的合作者廣播繪製:影片
、影象
、文字
等的視覺化。
通過程式設計
或通過UI組織
視覺化空間,為實時資料
建立儀表板
,檢查實驗結果,或除錯實驗程式碼。
2 visdom中的一些概念
Visdom
有一套簡單的功能,可以組成不同的案例
。
2.1 視窗(Windows)
1、開啟visdom的UI視窗
python -m visom.server
用上面的開啟一個visdom
服務,然後把返回的連結http://localhost:8097
或http://127.0.0.1:8097
在瀏覽器中開啟即可看到一個空白的visdom UI面板!
2、然後你可以在這個空白的白板
上:
繪圖
視覺化影象
視覺化文字
3、同時你可以拖放
、調整大小
、銷燬
這些視窗。視窗存在於environments
中並且environments
的狀態通過sessions儲存
。你可以下載視窗中的內容 - 包括SVG中的圖。
注意:
你可以通過
瀏覽器的縮放比例來
調整UI的比例
2.2 回撥(callbacks)
python Visdom
支援實現視窗上的回撥
。Demo以可編輯文字板的形式顯示。這些回撥函式
允許Visdom物件
接收並響應前端發生的事件
。
你可以通過向事件處理程式程式碼新增一個函式來為事件訂閱視窗
,該函式用於通過呼叫viz.register_event_handler(handler, win_id)
處理程式和視窗標識呼叫要訂閱的視窗標識。多個處理程式可以註冊到同一個視窗。你可以使用viz.clear_event_handlers(win_id)
刪除視窗中的所有事件處理程式。當在視窗發生一個事件時,你的回撥將在包含以下內容
的字典
上被呼叫:
-event_type
:以下事件型別之一
- pane_data
:該視窗的所有儲存內容包括佈局和內容。
- eid
:當前的環境ID
- target
:呼叫事件的視窗ID
下面定義了其他引數。現在支援以下回調事件:
- 1)
Close
-關閉視窗
時觸發。返回只有前述欄位的字典。 - 2)
KeyPress
-按下某個鍵
時觸發。包含其他引數:- key
-
按下的鍵的字串`表示形式(應用SHIFT等狀態修飾符) key_code
-按下鍵的javascript事件
鍵碼(無修飾符)
- key
- 3)
PropertyUpdate
-在“屬性”窗格中更新屬性時觸發propertyId
- 屬性列表中的位置value
- 新的屬性值
- 4)
Click
-當單擊影象窗格
時觸發,具有一個引數:image_coord
- 在可能縮放/平移的影象(不是封閉的窗格)的座標框架中,使用欄位x和y表示單擊座標的字典。
2.3 環境Environments
你可以使用envs
劃分你的視覺化空間
。預設情況下,每個使用者將有一個env呼叫main
。新的envs可以在使用者介面或以程式設計方式建立。envs的狀態是長期儲存的
。
你可以通過URL
訪問特定的ENV
: http://localhost.com:8097/env/main
。如果你的伺服器託管在網上,直接分享你的網址那樣其他人也可以看到你的視覺化
。
2.3.1 選擇環境(Selecting Environments)
從主頁面可以使用環境選擇器
在不同的環境之間切換
。選擇新環境將向伺服器查詢該環境中存在的圖
2.3.2 比較環境(Comparing Environments)
在主頁面上
,可以使用環境選擇器
比較不同的環境。在複選框中選擇多個環境
將查詢伺服器在所有環境中具有相同標題的地塊,並將它們繪製到單個地塊中。將建立一個附加的比較圖例窗格,其中包含與每個所選環境對應的數字。使用對應於“x_name”
的圖例更新各個plot
,其中x
是一個數字
,對應於比較圖例窗格,而name
是圖例中的原始名稱
。
2.3.3 清除環境(Clearing Environments)
你可以使用橡皮擦按鈕
來刪除環境中當前的所有內容
。這將關閉該環境的繪製plot視窗,並且保留空白的為新的繪製視窗。
2.3.4 管理環境(Managing Environments)
1、按下資料夾圖示將開啟一個對話方塊,允許複製
或強制儲存
當前環境,或刪除
當前環境的所有
2、Env Files
: 你的envs
在伺服器初始化時載入,預設情況下為$HOME/.visdom/
。自定義路徑可以作為cmd行引數傳遞。通過使用刪除按鈕或從環境中刪除相應的.json檔案
來刪除Envs。
2.4 狀態(State)
1、當你建立了幾個視覺化後,狀態保持不變
。伺服器自動快取
你的視覺化 —— 如果你重新載入頁面
,視覺化就會再現
!
-
Save
:你可以使用save按鈕手動執儲存
。這將序列化env的狀態
(以JSON形式儲存到磁碟
),包括視窗位置
。你可以以env程式設計方式儲存。 這有助於更為複雜的配置有意義的視覺化,例如資料豐富的演示、模型訓練儀表板或系統實驗。這也使得它們易於共享和重用。 -
Fork
:如果你輸入一個新的env名字,儲存將會建立一個新的env - 有效地分割以前的env。
2.5 過濾(Filter
1、你可以使用filter動態篩選env中的視窗
- 只要提供一個正則表示式來匹配您要顯示的視窗的標題
。這可以有助於涉及env與許多視窗的使用情況,例如系統地檢查實驗結果
。
注意:
如果您儲存了當前檢視,則清除過濾器後檢視將被恢復。
2.6 檢視(Views)
通過簡單地拖動視窗
的頂部來管理檢視
是可能的,但是還存在一些額外的功能來保持檢視的組織和儲存公共檢視。檢視管理對於儲存
和在多個視窗組織之間切換
非常有用。
2.6.1 儲存和刪除檢視(Saving / Deleting Views)
使用資料夾圖示
,將開啟一個對話方塊視窗
,其中檢視可以以相同的方式分叉。 儲存檢視將保留給定環境中所有視窗的位置和大小
。 在檢視將會儲存到visdom的$ Home / .Visdom / View / Layouts.json
路徑中!
注意:
已儲存的檢視是
靜態的(static)
2.6.2 重新包裝(Re-Packing)
使用重新包裝圖示
(9個小方格的圖示),visdom將嘗試以一種最適合的方式打包你的視窗,同時保持行/列順序
。
注意:
由於對
行/列排序
和ReactGridLayout的依賴
,最終的佈局可能與預期略有不同。我們正在努力改進這種體驗,或者提供更多可微調控制的替代方案。
2.6.3 重新載入檢視(Reloading Views)
重新載入檢視,動態圖片(CSDN最大隻能上傳5MB,傳不上去)
使用檢視下拉列表
可以選擇先前儲存的檢視
,將當前環境中所有視窗的所有視窗的位置和大小恢復到最後一個檢視儲存的地方!
3 安裝visdom
visdom要求python3的環境,安裝比較簡單直接用pip安裝即可:
pip install visdom
4 visdom使用
4.1 啟動visdom的服務
1、確保你已經安裝了visdom,然後需要開啟一個visdom的服務,在命令列下輸入:
visdom
或
python -m visdom.server
2、然後在瀏覽器
中開啟返回的連結:http://loaclhost:8097
4.2 visdom的命令列引數選項
1、可以在命令上中使用visdom -h
檢視visdom
的命令列引數選項
:
```python (yolov5) [email protected]:~/shl_res$ visdom -h Checking for scripts. usage: visdom [-h] [-port port] [--hostname hostname] [-base_url base_url] [-env_path env_path] [-logging_level logger_level] [-readonly] [-enable_login] [-force_new_cookie] [-use_frontend_client_polling]
Start the visdom server.
optional arguments: -h, --help show this help message and exit -port port port to run the server on. --hostname hostname host to run the server on. -base_url base_url base url for server (default = /). -env_path env_path path to serialized session to reload. -logging_level logger_level logging level (default = INFO). Can take logging level name or int (example: 20) -readonly start in readonly mode -enable_login start the server with authentication -force_new_cookie start the server with the new cookie, available when -enable_login provided -use_frontend_client_polling Have the frontend communicate via polling rather than over websockets. (yolov5) [email protected]:~/shl_res$ ```
2、具體引數如下:
port
:指定執行伺服器的埠
hostname
:執行伺服器的主機名
base_url
:基礎伺服器的url(default=/)env_path
:要重新載入的序列化會話的路徑logging_level
:日誌級別(預設=INFO)。接受標準文字和數字記錄值readonly
:以只讀模式
啟動伺服器的標誌enable_login
:標記為伺服器設定身份驗證,需要使用者名稱和密碼才能登入force_new_cookie
:標誌重置伺服器使用的安全cookie,使當前登入cookie失效。需要啟用登入
當提供-enable_login
flag時,伺服器要求使用者使用終端提示輸入憑據
。或者,你可以設定VISDOM_USE_ENV_CREDENTIALS
env變數,然後通過VISDOM_USERNAME
和VISDOM_PASSWORD
env變數提供你的使用者名稱
和密碼
,而無需手動與終端互動。如果你想從bash指令碼
或jupiter notebook
啟動visdom伺服器
,此設定非常有用。
python
VISDOM_USERNAME=username
VISDOM_PASSWORD=password
VISDOM_USE_ENV_CREDENTIALS=1 visdom -enable_login
如果沒有生成cookie檔案,或者設定了-force_new_cookie
標誌,也可以使用VISDOM_COOKIE變數
來提供cookie值。
4.3 python Visdom使用例子
4.3.1 在visdom中顯示文字和圖片
1、建立一個test_demo.py
```python import visdom import numpy as np
vis = visdom.Visdom() vis.text('Hello, world!') vis.image(np.ones((3, 10, 10))) ```
5 Visdom中的API使用
有關快速入門的功能visdom,請檢視example目錄
,或閱讀下面的詳細資訊。
5.1 Visdom arguments(Python only)
python visdom客戶端
的一些選項:
server
:你的visdom伺服器的hostname(預設為:http:localhost
)port
:你的visdom伺服器的埠port(預設為:8097
)base_url
: the base visdom server url (default:/
)env
:當沒有提供env時繪製到的預設環境(預設為:main
)raise_exceptions
:在失敗時引發異常而不是列印它們(預設值為True
)log_to_filename
:如果不是none,將所有繪圖和更新事件記錄到給定的檔案(追加模式),以便以後可以使用replay_log
(預設:none)重放它們。use_incoming_socket
:啟用從web客戶端接收事件的套接字,允許使用者註冊回撥(預設為值為True
)http_proxy_host
:棄用。使用代理引數來完成代理支援。http_proxy_port
:棄用。使用代理引數來完成代理支援。usename
:如果伺服器以-enable_login啟動,用於身份驗證的使用者名稱(預設為None
)passward
:如果伺服器以-enable_login啟動,用於身份驗證的密碼(預設為None
)proxies
:字典對映協議到代理的URL(例如{http: foo.bar:3128}),用於每個請求。(預設值為None)offline
:標誌以離線模式執行visdom,在這種模式下,所有請求都被記錄到檔案中,而不是記錄到伺服器。需要設定log_to_filename。在離線模式下,不建立或更新繪圖的所有visdom命令都將返回true。(預設值為False
)
5.2 基礎(Basics)API
Visdom提取以下基本的視覺化功能
:
vis.image
:圖片vis.images
:圖片列表vis.text
:任意的HTMLvis.properties
:屬性網格vis.audio
:音訊vis.video
:影片vis.svg
:SVG物件vis.matplot
:matplotlib圖繪製vis.save
:序列化狀態伺服器端
5.3 繪製(Plotting)
我們已經封裝了幾種常見的繪圖型別,以便輕鬆建立基本視覺化。這些視覺化由Plotly提供支援。
目前支援一下API:
vis.scatter
:2D或3D散點圖vis.line
:線圖vis.stem
:stem圖vis.heatmap
:熱圖地塊vis.bar
:條形圖vis.histogram
:直方圖vis.boxplot
:盒子vis.surf
:表面重複vis.contour
:等高線圖vis.quiver
:顫抖的情節vis.mesh
:網格圖vis.dual_axis_lines
:雙y軸線圖
5.4 普通繪圖(Generic Plots)
請注意,伺服器API遵守Plotly
約定data
和layout
物件,以便你可以生成自己的任意Plotly視覺化物件
:
```python import visdom vis = visdom.Visdom()
trace = dict(x=[1, 2, 3], y=[4, 5, 6], mode="markers+lines", type='custom', marker={'color': 'red', 'symbol': 104, 'size': "10"}, text=["one", "two", "three"], name='1st Trace') layout = dict(title="First Plot", xaxis={'title': 'x1'}, yaxis={'title': 'x2'})
vis._send({'data': [trace], 'layout': layout, 'win': 'mywin'}) ```
5.5 其他(Others)
vis.close
: 通過ID
關閉一個視窗vis.delete_env
:通過env_id
刪除一個環境(environments)vis.win_exists
:通過id檢查一個視窗是否已經存在vis.get_env_list
:獲取伺服器上所有環境的列表vis.win_hash
:獲取視窗內容的md5 hashvis.get_window_data
:獲取視窗的當前資料vis.check_connection
:檢查伺服器是否連線vis.replay_log
:回放提供的日誌檔案中的操作
5.6 visdom繪圖API中的一些細節(Details)
下面來詳細說明一下visdom
中提供的繪圖API的使用:
5.6.1 vis.image
1、vis.image
繪製一個img
。它將包含影象CxHxW
的張量(tensor)作為輸入
2、vis.image
的引數:
jpgquality
:JPG影象的質量(取值範圍:0-100
),如果定義了,則用於儲存JPG影象檔案的大小,如果沒有定義,則儲存為PNG
caption
:影象的說明(caption)store_history
:保持所有影象
儲存到同一個視窗
,並在底部附加一個滑塊,讓你選擇要檢視的影象。當你將新影象傳送到具有歷史記錄的影象時,必須始終提供此選項。
5.6.2 vis.images
1、vis.images
這個函式繪製一個影象列表
。它取一個輸入B x C x H x W張量
或者一個相同大小的list of images
。它建立一個大小為(B / nrow, nrow)的影象網格
。
2、vis.images
的引數:
nrow
:影象的行數padding
:在影象周圍填充,四邊均勻填充opt.jpgquality
:JPG影象的質量(取值範圍:0-100
),如果定義了,則用於儲存JPG影象檔案的大小,如果沒有定義,則儲存為PNG
caption
:影象的說明(caption)
5.6.3 vis.text
1、vis.text
這個函式在一個框中列印文字
。你可以使用它來嵌入任意HTML
。它將文字字串作為輸入
。當前不支援特定的選項。
2、vis.text
當前沒有特定的引數選項
5.6.4 vis.properties
1、vis.properties
這個函式在窗格中顯示可編輯的屬性
。屬性應該是一個字典列表
,例如:
python
properties = [
{'type': 'text', 'name': 'Text input', 'value': 'initial'},
{'type': 'number', 'name': 'Number input', 'value': '12'},
{'type': 'button', 'name': 'Button', 'value': 'Start'},
{'type': 'checkbox', 'name': 'Checkbox', 'value': True},
{'type': 'select', 'name': 'Select', 'value': 1, 'values': ['Red', 'Green', 'Blue']},
]
2、支援的型別
- text:字串
- number:十進位制的數
- button:button labeled with "value"
- checkbox:布林值呈現為
複選框
- select:多個值選擇框
- value:選定值的Id(從零開始) -values:可能值的列表
3、在屬性值更新時呼叫回撥
event_type
:PropertyUpdate
propertyId
:屬性列表中的位置value
:新的值
4、vis.properties
的引數
當前沒有特定的引數選項
5.6.5 vis.audio
1、vis.audio
這個功能播放音訊
。它將音訊檔案的檔名或包含波形的N張量(立體聲音訊使用Nx2矩陣)作為輸入。該函式不支援任何特定於繪圖的選項
。
2、支援以=下選項:
opts.sample_frequency
:取樣頻率
(整型> 0,預設= 44100)
已知問題:Visdom使用scipy
將張量輸入轉換為波檔案
。一些版本的Chrome瀏覽器不能播放這些wave檔案(Firefox和Safari可以)。
5.6.6 vis.video
1、vis.video
播放影片
。它將影片影片檔案的檔名
或包含所有影片幀
的LxCxHxW
大小的張量
作為輸入。該函式不支援任何特定於繪圖的選項
。
2、支援以=下選項:
opts.fps
:影片的幀率fps(整型>0,預設=25)
注意:
使用張量輸入需要安裝
ffmpeg
並工作。你播放影片的能力可能取決於你使用的瀏覽器:你的瀏覽器必須支援Theano編解碼器在OGG容器(Chrome支援這個)。
5.6.7 vis.svg
1、vis.svg
這個函式繪製一個SVG物件
。它接受SVG字串svgstr
或SVG檔案的名稱svgfile
作為輸入。該函式不支援任何特定的選項。
5.6.8 vis.matplot
1、vis.matplot
這個函式繪製一個Matplotlib圖。該函式支援一個特定於繪圖的選項:resizable
。
2、注意:
-
當設定為True時,繪圖將隨著窗格調整大小。需要安裝beautifulsoup4和lxml包才能使用該選項
-
matplot不使用與plotly plot相同的後端來呈現,而且效率較低。使用太多的matplot視窗可能會降低visdom效能。
5.6.9 vis.plotlyplot
1、vis.plotlyplot
這個函式繪製一個Plotly Figure物件
。它不會顯式地接受選項,因為它假定你已經顯式地配置了圖形的佈局。
2、注意:
要使用這個函式,必須安裝plotly Python包。它通常可以通過執行pip install plotly
來安裝。
2.6.10 vis.embeddings
1、vis.embeddings
該函式使用Barnes-Hut t-SNE演算法視覺化一組特徵。
2、vis.embeddings
的引數
features
:一個tensors的列表labels
:為features提供的張量的對應標籤列表data_getter_fn
:(可選)一個函式,它接受feature陣列的索引作為引數,並返回張量的彙總表示。如果設定了這個值,那麼也必須設定data_type。data_type=str
:可選)目前這裡唯一可接受的值是“HTML”
我們目前假設有不超過10個獨特的標籤,在未來我們希望提供一個顏色地圖Colormap
在選擇其他情況下。
在UI中,你也可以在功能的子集周圍畫一個套索。這將在選定的子集上重新執行t-SNE視覺化。
2.6.11 vis.save
1、vis.save
儲存visdom
伺服器上存活的envs
。它需要輸入一個要儲存的env id
列表。
5.7 繪圖(Plotting)
關於包裝的繪圖函式的進一步細節如下所示。
繪圖函式
的輸入各不相同
,儘管它們中的大多數將包含資料的張量X
和包含可選資料變數(如標籤或時間戳)的張量Y
作為輸入。所有的繪圖功能都可以作為一個可選項win
,用來繪製到一個特定的視窗
;每個繪圖函式也返回win它繪製的視窗。還可以指定env 視覺化應該新增到的視窗。
5.7.1 vis.scatter
1、vis.scatter
此功能繪製2D或3D散點圖
。它需要輸入一個Nx2
或 一個Nx3
張量X來指定N散點圖中點的位置。一個可選的N張量,Y其中包含離散的標籤,範圍介於1和K可以指定 - 標籤將反映在標記的顏色
2、vis.scatter
的引數
opts.markersymbol
:標記符號(字串型別,預設='dot'
)opts.markersize
:標記的大小(數字,預設=‘10’
)opts.markercolor
:每個標記的顏色(torch.*Tensor; default = nil)opts.markerborderwidth
:標記邊界的弦寬(浮點型別,預設=0.5
)opts.legend
:包含圖例名稱的表opts.textlabels
:每個點的文字標籤
(列表:預設值=None)opts.layoutopts
:圖後端為佈局接受的任何其他選項的字典。例如layoutopts =layoutopts = {'plotly': {'legend': {'x':0, 'y':0}}}
opts.traceopts
:將跟蹤名稱或索引對映到圖後端接受的附加選項的字典。例如:traceopts = {'plotly': {'myTrace': {'mode': 'markers'}}}
opts.webgl
:使用webgl進行繪圖(布林,預設= false)。 如果繪圖包含太多點,則更快。 謹慎使用,因為瀏覽器不會在單個頁面上允許多個WebGL上下文。
opt.markercolor
是一個具有整數值的張量
。張量的大小可以是N
或Nx3``或
K或
Kx3`
張量大小為N
:每個資料點的單一強度值。0 =black,255 =red張量大小為Nx3
:每個資料點的紅色,綠色和藍色強度。 0,0,0 =black,255,255,255 =white張量大小為K 和 Kx3
:不是為每個資料點使用唯一的顏色,而是為特定標籤的所有點共享相同的顏色。
5.7.2 vis.line
1、vis.line
這個函式繪製一個線形圖
。它將N
或NxM
張量Y作為輸入,指定連線N個點的M條線的值。它還接受一個可選的X張量,指定相應的X軸值;X可以是一個N張量(在這種情況下,所有的直線將共享相同的X軸值)或具有與Y相同的大小。
2、vis.line
的引數
opts.fillarea
:填充線下面的區域(布林值)opts.markers
:顯示標記(布林;預設= false)opts.markersymbol
:標記符號(字串型別,預設='dot'
)opts.makersize
:標記的大小(數字,預設=‘10’
)opts.linecolor
:線的顏色(np.array,預設=None
)opts.dash
:每一行的行dash型別(np.array;預設= 'solid'),其中一個實線,虛線,虛線或虛線,大小應與所繪製的線的數量相匹配opts.legend
:包含圖例名稱的表opts.layoutopts
:圖後端為佈局接受的任何其他選項的字典。例如layoutopts =layoutopts = {'plotly': {'legend': {'x':0, 'y':0}}}
opts.traceopts
:將跟蹤名稱或索引對映到圖後端接受的附加選項的字典。例如:traceopts = {'plotly': {'myTrace': {'mode': 'markers'}}}
opts.webgl
:使用webgl進行繪圖(布林,預設= false)。 如果繪圖包含太多點,則更快。 謹慎使用,因為瀏覽器不會在單個頁面上允許多個WebGL上下文。
5.7.3 vis.stem
1、vis.stem
這個函式繪製一個乾圖
。它需要輸入一個N或NxM張量 X來指定時間序列中的N點的值M。包含時間戳的可選N或NxM張量Y也可以被指定; 如果Y是N張量,則M假定所有時間序列具有相同的時間戳。
2、vis.stem
的引數
opts.colormap()
:colormap(字串型別,預設='Viridis'
)opts.legend
:包含圖例名稱的表opts.layoutopts
:圖後端為佈局接受的任何其他選項的字典。例如layoutopts =layoutopts = {'plotly': {'legend': {'x':0, 'y':0}}}
5.7.4 vis.heatmap
1、vis.heatmap
這個函式繪製一個熱圖
。它需要輸入NxM張量
X來指定熱圖中每個位置的值。
2、vis.heatmap
的引數
opts.colormap()
:colormap(字串型別,預設='Viridis'
)opts.xmin
:裁剪最小值(數字;預設值= x:min())opts.xmax
:裁剪最小值(數字;預設值= x:min())opts.columnnames
:包含x軸標籤的表格opts.rosnames
:包含y軸標籤的表格opts.legend
:包含圖例名稱的表opts.layoutopts
:圖後端為佈局接受的任何其他選項的字典。例如layoutopts =layoutopts = {'plotly': {'legend': {'x':0, 'y':0}}}
opts.nancolor
:繪製nan的顏色。如果這是None, nan將被繪製為透明的。(字串;預設=None)
5.7.5 vis.bar
1、vis.bar
這個函式繪製一個規則的,堆積的或分組的條形圖
。它需要輸入一個N或NxM張量X來指定每個條的高度。如果X包含M列,則對應於每行的值將被堆疊或分組(取決於如何opts.stacked設定)。除此之外X,還可以指定一個(可選的)N張量Y,其中包含相應的x軸值。
2、vis.bar
的引數
opts.rownames
:包含x軸標籤的表格opts.stacked
:在X中堆疊多個列opts.legend
:包含圖例名稱的表opts.layoutopts
:圖後端為佈局接受的任何其他選項的字典。例如layoutopts =layoutopts = {'plotly': {'legend': {'x':0, 'y':0}}}
5.7.6 vis.histogram
1、vis.histogram
該功能繪製指定資料的直方圖
。它需要輸入一個N張量
X來指定構建直方圖的資料。
2、vis.histogram
的引數
opts.numbins
:bins的數量 (number ,預設= 30)opts.layoutopts
:圖後端為佈局接受的任何其他選項的字典。例如layoutopts =layoutopts = {'plotly': {'legend': {'x':0, 'y':0}}}
5.7.7 vis.boxplot
1、vis.boxplot
此函式繪製指定資料的箱形圖
。它需要輸入一個N或一個NxM張量X來指定N構造M箱形圖的資料值。
2、vis.boxplot
的引數
opts.legend
:包含圖例名稱的表opts.layoutopts
:圖後端為佈局接受的任何其他選項的字典。例如layoutopts =layoutopts = {'plotly': {'legend': {'x':0, 'y':0}}}
5.7.8 vis.surf
1、vis.surf
這個函式繪製一個曲面圖
。它需要輸入NxM張量X 來指定曲面圖中每個位置的值。
2、vis.surf
的引數
opts.colormap()
:colormap(字串型別,預設='Viridis'
)opts.xmin
:裁剪最小值(數字;預設值= x:min())opts.xmax
:裁剪最小值(數字;預設值= x:min())opts.layoutopts
:圖後端為佈局接受的任何其他選項的字典。例如layoutopts =layoutopts = {'plotly': {'legend': {'x':0, 'y':0}}}
5.7.9 vis.contour
1、vis.contour
這個函式繪製一個等高線圖
。它需要輸入一個NxM張量X 來指定輪廓圖中每個位置的值。
2、vis.contour
的引數
opts.colormap()
:colormap(字串型別,預設='Viridis'
)opts.xmin
:裁剪最小值(數字;預設值= x:min())opts.xmax
:裁剪最小值(數字;預設值= x:min())opts.layoutopts
:圖後端為佈局接受的任何其他選項的字典。例如layoutopts =layoutopts = {'plotly': {'legend': {'x':0, 'y':0}}}
5.7.10 vis.quiver
1、vis.quiver
該功能繪製箭疊圖
,其中箭頭的方向和長度由NXM張量X和Y確定。可以提供兩個可選的NXM張力gridX和gridY,以指定箭頭的偏移; 預設情況下,箭頭將在常規網格上完成。
2、vis.quiver
的引數
opts.normalize
:最長箭頭的長度(number)opts.arrowheads
:顯示箭頭頭(Boolean;預設= True)opts.layoutopts
:圖後端為佈局接受的任何其他選項的字典。例如layoutopts =`layoutopts = {'plotly': {'legend': {'x':0, 'y':0}}}``:
5.7.11 vis.mesh
1、vis.mesh
這個函式從Nx2或Nx3矩陣X中定義的一組頂點以及可選的Mx2或Mx3矩陣Y中定義的多邊形繪製網格圖
。
2、vis.mesh
的引數
opts.color
:顏色(字串)opts.opacity
:多邊形的不透明度(數值介於0和1之間)opts.layoutopts
:圖後端為佈局接受的任何其他選項的字典。例如layoutopts =layoutopts = {'plotly': {'legend': {'x':0, 'y':0}}}
5.7.12 vis.dual_axis_lines
1、vis.dual_axis_lines
這個函式將使用帶有不同y軸的plotly建立一個直線圖。
-
X
= 一個numpy array型別的陣列 -
Y1
=與X計數相同的numpy array陣列。 -
Y2
=與X計數相同的numpy array陣列。
2、vis.dual_axis_lines
的引數
opts.height
:繪製圖的高opts.width
:繪製圖的寬opts.name_y1
:Axis name for Y1 plotopts.name_y2
:Axis name for Y2 plotopts.title
:繪製圖的標題titleopts.color_title_y1
:Color of the Y1 axis Titleopts.color_tick_y1
:Color of the Y1 axis Ticksopts.color_title_y2
: Color of the Y2 axis Titleopts.color_tick_y2
:Color of the Y2 axis Ticksopts.side
:需要放置Y2刻度的那一面。值為'right'或' left '。opts.showlegend
:顯示圖例(布林值)opts.top
:設定繪圖的頂部邊緣opts.bottom
:設定繪圖的底部邊緣opts.right
:設定繪圖的右邊邊緣opts.left
:設定繪圖的左邊邊緣
下面是一個輸出image:
5.8 自定義繪圖(Customizing plots)
1、Customizing plots
繪圖函式採用可選的選項表作為輸入,可用於更改圖形的(特定於通用或繪圖特定)屬性
。 所有輸入引數都在單個表中指定; 輸入引數基於它們在輸入表中具有的鍵匹配。
以下選項
是通用的,因為它們對所有視覺化相同
(plot.image,plot.text,plot.video和plot.audio):
2、Customizing plots
的以下引數是通用的
- opts.title :圖示題
- opts.width :圖寬度
- opts.height :身高
- opts.showlegend :顯示圖例(true或false)
- opts.xtype :x軸的型別('linear'或'log')
- opts.xlabel :x軸的標籤
- opts.xtick :在x軸上顯示刻度(boolean)
- opts.xtickmin :先在x軸上打勾(number)
- opts.xtickmax :在x軸上的最後一個勾號(number)
- opts.xtickvals :在x軸(蜱位置table的number多個)
- opts.xticklabels:蜱上x軸(標籤table的string多個)
- opts.xtickstep :x軸上的滴答聲之間的距離(number)
- opts.ytype :y軸的型別('linear'或'log')
- opts.ylabel :y軸的標籤
- opts.ytick :在y軸上顯示刻度(boolean)
- opts.ytickmin :首先在y軸上打勾(number)
- opts.ytickmax :最後在y軸上打勾(number)
- opts.ytickvals :在y軸的刻度位置(table的number多個)
- opts.yticklabels:蜱上y軸標籤(table的string多個)
- opts.ytickstep :Y軸上的刻度之間的距離(number)
- opts.marginleft :左邊距(以畫素為單位)
- opts.marginright :右邊距(以畫素為單位)
- opts.margintop :頂部邊距(以畫素為單位)
- opts.marginbottom:底部邊距(以畫素為單位)
- windows上比較好用的截圖軟體 Gif錄製軟體 看圖軟體,建議收藏!
- python使用pyinstaller把程式進行打包
- 深度學習視覺化工具visdom使用
- linux後臺執行命令screen的使用
- NVIDIA Jetson Xavier NX上匯入tensorflow報錯:AttributeError: module ‘wrapt‘ has no att
- 在NVIDIA Jetson Xavier NX上把yolov4-deepsort的模型pb模型轉換為tensorrt模型
- 在NVIDIA Jetson Xavier NX上安裝llvm和numba,以及在Jetxon NX上跑通CenterTrack的目標跟蹤模型
- TensorRT7.0版本在Linux環境安裝,以及安裝python API介面,測試TensorRT中的測試用例
- Jetson nano刷好機之後需要做的準備工作
- 本地直播平臺的搭建—四種方式
- python opencv用電腦呼叫手機攝像頭或其他網路攝像頭
- Linux中gcc的編譯、靜態庫和動態庫的製作
- Linux開機自動啟動python指令碼程式,或 Jetson nano或Jetson Xavier NX開機自動啟動python指令碼程式
- lidar鐳射雷達介紹,以及使用鐳射雷達資料通過深度學習做目標檢測
- Camelot:從pdf中提取表格資料
- python中的h5py開源庫的使用
- python3建立定時任務