OHLC 圖表、瀑布圖和漏斗圖



本章重點介紹其他三種類型的圖表,包括 OHLC、瀑布圖和漏斗圖,這些圖表可以使用 Plotly 建立。

OHLC 圖表

開盤價-最高價-最低價-收盤價圖表(也稱為 OHLC 圖表)是一種條形圖,通常用於說明金融工具(如股票)價格的變動。OHLC 圖表很有用,因為它們顯示了一段時間內的四個主要資料點。這種圖表型別很有用,因為它可以顯示上漲或下跌的動量。最高價和最低價資料點有助於評估波動性。

圖表上的每條垂直線顯示了一個時間單位(如一天或一小時)內的價格範圍(最高價和最低價)。刻度從線的兩側延伸,左側指示開盤價(例如,對於每日條形圖,這將是該天的起始價格),右側指示該時間段的收盤價。

下面顯示了 OHLC 圖表演示的示例資料。它具有對應於相應日期字串的最高價、最低價、開盤價和收盤價的列表物件。字串的日期表示形式使用datetime模組中的strtp()函式轉換為日期物件。

open_data = [33.0, 33.3, 33.5, 33.0, 34.1]
high_data = [33.1, 33.3, 33.6, 33.2, 34.8]
low_data = [32.7, 32.7, 32.8, 32.6, 32.8]
close_data = [33.0, 32.9, 33.3, 33.1, 33.1]
date_data = ['10-10-2013', '11-10-2013', '12-10-2013','01-10-2014','02-10-2014']
import datetime
dates = [
   datetime.datetime.strptime(date_str, '%m-%d-%Y').date() 
   for date_str in date_data
]

我們必須將上述日期物件用作 x 引數,並將其他引數用作go.Ohlc()函式所需的開盤價、最高價、最低價和收盤價引數,該函式返回 OHLC 軌跡。

trace = go.Ohlc(
   x = dates, 
   open = open_data, 
   high = high_data,
   low = low_data, 
   close = close_data
)
data = [trace]
fig = go.Figure(data = data)
iplot(fig)

程式碼的輸出如下所示:

OHLC Chart

K 線圖

K 線圖類似於 OHLC 圖表。它就像折線圖條形圖的組合。方塊表示開盤價和收盤價之間的價差,線條表示最低價和最高價之間的價差。收盤價高於(低於)開盤價的示例點稱為上漲(下跌)。

go.Candlestick() 函式返回 Candlestrick 軌跡。我們使用相同的資料(與 OHLC 圖表相同)來呈現如下所示的 K 線圖:

trace = go.Candlestick(
   x = dates, 
   open = open_data, 
   high = high_data,
   low = low_data, 
   close = close_data
)

上面給定程式碼的輸出如下所示:

Candlestick Chart

瀑布圖

瀑布圖(也稱為飛磚圖或馬里奧圖)有助於理解依次引入的正值或負值的累積效應,這些值可以基於時間或基於類別。

初始值和最終值顯示為列,各個負調整和正調整顯示為浮動步驟。一些瀑布圖連線列之間的線條,使圖表看起來像一座橋。

go.Waterfall()函式返回瀑布軌跡。此物件可以透過各種命名引數或屬性進行自定義。這裡,x 和 y 屬性設定圖形的 x 和 y 座標的資料。兩者都可以是 Python 列表、NumPy 陣列或 Pandas 系列或字串或日期時間物件。

另一個屬性是measure,它是一個包含值型別的陣列。預設情況下,這些值被視為相對值。將其設定為“total”以計算總和。如果它等於absolute,則重置計算的總和或在需要時宣告初始值。“base”屬性設定條形底部的繪製位置(以位置軸單位表示)。

以下程式碼呈現瀑布圖:

s1=[
   "Sales", 
   "Consulting", 
   "Net revenue", 
   "Purchases", 
   "Other expenses", 
   "Profit before tax"
]
s2 = [60, 80, 0, -40, -20, 0]
trace = go.Waterfall(
   x = s1,
   y = s2,
   base = 200,
   measure = [
      "relative", 
      "relative", 
      "total", 
      "relative", 
      "relative", 
      "total"
   ]
)
data = [trace]
fig = go.Figure(data = data)
iplot(fig)

下面提到的輸出是上面給定程式碼的結果。

Waterfall Chart

漏斗圖

漏斗圖表示業務流程不同階段的資料。它是商業智慧中識別流程潛在問題區域的重要機制。漏斗圖用於視覺化資料在從一個階段過渡到另一個階段時如何逐漸減少。這些階段中的每個階段的資料都表示為 100%(整體)的不同部分。

與餅圖一樣,漏斗圖也不使用任何軸。它也可以被視為類似於堆疊百分比條形圖。任何漏斗都由稱為頭部(或底部)的上部和稱為頸部的下部組成。漏斗圖最常見的用途是視覺化銷售轉化資料。

Plotly 的go.Funnel()函式生成漏斗軌跡。要提供給此函式的基本屬性是 x 和y。它們中的每一個都分配了一個 Python 專案列表或陣列。

from plotly import graph_objects as go
fig = go.Figure(
   go.Funnel(
      y = [
         "Website visit", 
         "Downloads", 
         "Potential customers", 
         "Requested price", 
         "invoice sent"
      ],
      x = [39, 27.4, 20.6, 11, 2]
   )
)
fig.show()

輸出如下所示:

Funnel Chart
廣告