
- Plotly 教程
- Plotly - 首頁
- Plotly - 簡介
- Plotly - 環境設定
- Plotly - 線上和離線繪圖
- 在 Jupyter Notebook 中內聯繪圖
- Plotly - 包結構
- Plotly - 匯出為靜態影像
- Plotly - 圖例
- Plotly - 格式化軸和刻度
- Plotly - 子圖和嵌入圖
- Plotly - 條形圖和餅圖
- Plotly - 散點圖、Scattergl 圖和氣泡圖
- Plotly - 點圖和表格
- Plotly - 直方圖
- Plotly - 箱線圖、小提琴圖和等高線圖
- Plotly - Distplots、密度圖和誤差條形圖
- Plotly - 熱力圖
- Plotly - 極座標圖和雷達圖
- Plotly - OHLC 圖表、瀑布圖和漏斗圖
- Plotly - 3D 散點圖和曲面圖
- Plotly - 新增按鈕/下拉選單
- Plotly - 滑塊控制元件
- Plotly - FigureWidget 類
- Plotly 與 Pandas 和 Cufflinks
- Plotly 與 Matplotlib 和 Chart Studio
- Plotly 有用資源
- Plotly - 快速指南
- Plotly - 有用資源
- Plotly - 討論
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)
程式碼的輸出如下所示:

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 )
上面給定程式碼的輸出如下所示:

瀑布圖
瀑布圖(也稱為飛磚圖或馬里奧圖)有助於理解依次引入的正值或負值的累積效應,這些值可以基於時間或基於類別。
初始值和最終值顯示為列,各個負調整和正調整顯示為浮動步驟。一些瀑布圖連線列之間的線條,使圖表看起來像一座橋。
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)
下面提到的輸出是上面給定程式碼的結果。

漏斗圖
漏斗圖表示業務流程不同階段的資料。它是商業智慧中識別流程潛在問題區域的重要機制。漏斗圖用於視覺化資料在從一個階段過渡到另一個階段時如何逐漸減少。這些階段中的每個階段的資料都表示為 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()
輸出如下所示:
