詳解Plotly,創(chuàng)建自定義指標圖表
如果你不熟悉Plotly或數(shù)據(jù)可視化概念,不要擔心!我們將把它分解成易于理解的小塊內(nèi)容,使其適合任何人。
Plotly簡介
Plotly是一個強大的數(shù)據(jù)可視化工具,允許我們使用Python創(chuàng)建各種交互式繪圖和圖表。在Plotly提供的無數(shù)類型的圖表中,有一種特別簡單明了的類型是“指標圖表”。這些圖表非常適合儀表盤,你可以在其中強調(diào)關(guān)鍵指標或追蹤一段時間內(nèi)的變化。
導入
在深入研究細節(jié)之前,需要導入Plotly庫。這是任何涉及外部庫的Python程序中典型的第一步:
import plotly.graph_objects as go
創(chuàng)建指標圖表
讓我們考慮一個場景,我們有兩個值-120和150。我們要使用參考值100創(chuàng)建這些值的指標。參考值是我們將實際值與之進行比較的基準或標準。
我們的目標是生成下圖:
圖形輸出
以下是創(chuàng)建指標的步驟:
# 創(chuàng)建繪圖的布局
layout = go.Layout(
grid = {'rows': 1, 'columns': 2, 'pattern': 'independent'},
width = 600, # 寬度像素
height = 300 # 高度像素
)
fig = go.Figure(layout=layout)
# 第一個值
fig.add_trace(go.Indicator(
mode = "number+delta+gauge",
value = 120,
delta = {'reference': 100},
gauge = {
'axis': {'visible': True, 'range': [None, 150]},
'steps': [
{'range': [0, 100], 'color': "lightgray"}
],
'threshold': {
'line': {'color': "red", 'width': 4},
'thickness': 0.75,
'value': 100
}
},
title = {"text": "Value 1"},
domain = {'x': [0, 0.5], 'y': [0, 1]}
))
# 第二個值
fig.add_trace(go.Indicator(
mode = "number+delta+gauge",
value = 150,
delta = {'reference': 100},
gauge = {
'axis': {'visible': True, 'range': [None, 200]},
'steps': [
{'range': [0, 100], 'color': "lightgray"}
],
'threshold': {
'line': {'color': "red", 'width': 4},
'thickness': 0.75,
'value': 100
}
},
title = {"text": "Value 2"},
domain = {'x': [0.5, 1], 'y': [0, 1]}
))
fig.show()
在我們討論的代碼中,我們正在使用go.Indicator函數(shù)來創(chuàng)建指標。一開始可能看起來會感覺有點復雜,但一旦我們了解它使用的參數(shù),一切就都水到渠成了。以下是我們所使用參數(shù)的概要介紹:
- mode:此參數(shù)設(shè)置指標的模式。通過將其設(shè)置為“number+delta+gauge”,我們告訴Plotly顯示實際值(number)、與參考值的差異(delta)以及在其范圍內(nèi)可視化數(shù)值的儀表(gauge)。
- value:這是該指標將顯示的實際值。
- delta:此參數(shù)用于展示實際值和參考值之間的差異。當你想要突出變化或增長時,這特別有用。
- gauge:這是為我們的值提供背景的一個視覺表示。它類似于一個速度表,顯示了我們的值在特定范圍內(nèi)所處的位置。在gauge參數(shù)中,我們可以進一步自定義axis(儀表的范圍)、steps(儀表的分段)和threshold (儀表上標記的值)。
- title:這只是指標的標題。
- domain:此參數(shù)確定每個指標所占據(jù)的繪圖區(qū)域,這有助于我們將指標并排定位放置。
通過理解和調(diào)整這些參數(shù),你可以自定義指標圖表以適應你的數(shù)據(jù)和受眾需求。你可以嘗試不同顏色、調(diào)整范圍、重新定位指標等等。
然而,雖然美學定制是數(shù)據(jù)可視化的一個很好的方面,但重要的是要記住,任何數(shù)據(jù)可視化的主要目標都是清晰準確地表示數(shù)據(jù)。因此,總是優(yōu)先考慮清晰性而不是華麗性。
我們使用Plotly創(chuàng)建了一個簡單而強大的數(shù)據(jù)可視化。這只是冰山一角,Plotly提供了許多更多功能和類型的圖表供你探索。
圖形輸出