OHLCチャート、ウォーターフォールチャート、ファネルチャート

この章では、OHLC、ウォーターフォール、ファネルチャートなど、Plotlyを使用して作成できる他の3種類のチャートに焦点を当てます。

OHLCチャート

アン open-high-low-close チャート(OHLCも)は一種です bar chart通常、株式などの金融商品の価格の動きを説明するために使用されます。OHLCチャートは、ある期間の4つの主要なデータポイントを示すので便利です。チャートタイプは、勢いの増減を示すことができるので便利です。高データポイントと低データポイントは、ボラティリティの評価に役立ちます。

チャートの各垂直線は、日や時間などの1単位時間の価格範囲(最高価格と最低価格)を示しています。目盛りは線の両側から投影され、左側に始値(たとえば、毎日の棒グラフの場合、これはその日の開始価格になります)を示し、右側にその期間の終値を示します。

OHLCチャートのデモンストレーションのサンプルデータを以下に示します。対応する日付文字列と同様に、高値、安値、始値、終値に対応するリストオブジェクトがあります。文字列の日付表現は、を使用して日付オブジェクトに変換されます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)

コードの出力を以下に示します-

ローソク足チャート

ザ・ candlestick chartOHLCチャートに似ています。それはの組み合わせのようなものですline-chartbar-chart。ボックスは始値と終値の間のスプレッドを表し、線は低い値と高い値の間のスプレッドを表します。終値が高い(低い)よりも大きい(低い)サンプルポイントは、増加(減少)と呼ばれます。

キャンドルストリックトレースはによって返されます go.Candlestick() function。以下に示すように、ローソク足チャートをレンダリングするために(OHLCチャートと同じ)データを使用します-

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

上記のコードの出力は以下のとおりです-

滝グラフ

ウォーターフォールチャート(別名 flying bricks chart or Mario chart)時間ベースまたはカテゴリベースのいずれかである、順次導入された正または負の値の累積効果を理解するのに役立ちます。

初期値と最終値は列として表示され、個々の負と正の調整は浮動ステップとして示されます。一部のウォーターフォールチャートは、列間の線を接続して、チャートを橋のように見せます。

go.Waterfall()関数はウォーターフォールトレースを返します。このオブジェクトは、さまざまな名前付き引数または属性によってカスタマイズできます。ここで、x属性とy属性は、グラフのx座標とy座標のデータを設定します。どちらもPythonリスト、numpy配列、Pandasシリーズ、文字列、日時オブジェクトにすることができます。

別の属性は measureこれは、値のタイプを含む配列です。デフォルトでは、値は次のように見なされますrelative。合計を計算するには、「合計」に設定します。それが等しい場合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)

以下の出力は、上記のコードの結果です。

じょうごチャート

ファンネルチャートは、ビジネスプロセスのさまざまな段階のデータを表します。プロセスの潜在的な問題領域を特定することは、ビジネスインテリジェンスの重要なメカニズムです。ファンネルチャートは、データが1つのフェーズから別のフェーズに移行するときにデータがどのように徐々に減少するかを視覚化するために使用されます。これらの各フェーズのデータ​​は、100%(全体)のさまざまな部分として表されます。

円グラフと同様に、じょうごグラフも軸を使用しません。それはまた、同様に扱うことができますstacked percent bar chart。じょうごは、ヘッド(またはベース)と呼ばれる上部とネックと呼ばれる下部で構成されます。目標到達プロセスチャートの最も一般的な用途は、売上コンバージョンデータの視覚化です。

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()

出力は以下のとおりです。