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