Plotly-ohlc-waterfall-and-funnel-chart

提供:Dev Guides
移動先:案内検索

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

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

OHLCチャート

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

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

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
]

OHLCトレースを返す* go.Ohlc()*関数に必要な始値、高値、安値、終値のパラメーターには、上記の日付オブジェクトをxパラメーターなどとして使用する必要があります。

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チャート

ローソク足チャート

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

Candlestrickトレースは* go.Candlestick()関数*によって返されます。 同じデータ(OHLCチャートと同様)を使用して、以下のようにローソク足チャートをレンダリングします-

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)

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

ウォーターフォールチャート

ファンネルチャート

ファンネルチャートは、ビジネスプロセスのさまざまな段階のデータを表します。 プロセスの潜在的な問題領域を識別することは、ビジネスインテリジェンスの重要なメカニズムです。 じょうごグラフは、データが1つのフェーズから別のフェーズに移るときに、データが徐々に減少する様子を視覚化するために使用されます。 これらの各フェーズのデータ​​は、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()

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

ファンネルチャート