📜  OHLC图表,瀑布图和漏斗图

📅  最后修改于: 2020-11-29 07:08:58             🧑  作者: Mango


本章重点介绍其他三种类型的图表,包括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参数,将其他对象用于返回OHLC跟踪的go.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图表

烛台图

烛台图类似于OHLC图。这就像折线图条形图的组合。框代表开盘价和收盘价之间的价差,而线代表低值和高值之间的价差。收盘价比开盘价高(低)的样本点称为增加(减少)。

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系列或字符串或日期时间对象。

另一个属性是度量,它是包含值类型的数组。默认情况下,这些值被视为relative 。将其设置为“总计”以计算总和。如果等于绝对值,它将重置计算的总数或在需要时声明初始值。 ‘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()

输出如下-

漏斗图