Plotly - 分布图、密度图和误差条形图



本章我们将详细了解分布图、密度图和误差条形图。让我们从学习分布图开始。

分布图 (Distplots)

分布图图形工厂显示数值数据的统计表示组合,例如直方图、核密度估计或正态曲线以及毛毯图。

分布图可以由以下 3 个组件中的全部或任何组合组成:

  • 直方图
  • 曲线:(a)核密度估计或(b)正态曲线,以及
  • 毛毯图 (rug plot)

figure_factory 模块具有create_distplot() 函数,该函数需要一个名为 hist_data 的必填参数。

以下代码创建一个包含直方图、kde 图和毛毯图的基本分布图。

x = np.random.randn(1000)
hist_data = [x]
group_labels = ['distplot']
fig = ff.create_distplot(hist_data, group_labels)
iplot(fig)

上面提到的代码的输出如下:

Distplots

密度图

密度图是根据数据估计的直方图的平滑连续版本。最常见的估计形式称为核密度估计 (KDE)。在这种方法中,在每个单独的数据点处绘制一条连续曲线(核),然后将所有这些曲线加在一起以创建一个平滑的密度估计。

plotly.figure_factory._2d_density 模块中的create_2d_density() 函数返回二维密度图的图形对象。

以下代码用于生成直方图数据上的二维密度图。

t = np.linspace(-1, 1.2, 2000)
x = (t**3) + (0.3 * np.random.randn(2000))
y = (t**6) + (0.3 * np.random.randn(2000))
fig = ff.create_2d_density( x, y)
iplot(fig)

以下是上面给定代码的输出。

Density Plot

误差条形图

误差条是数据误差或不确定性的图形表示,它们有助于正确解释。出于科学目的,错误报告对于理解给定数据至关重要。

误差条对问题解决者很有用,因为误差条显示了一组测量值或计算值的置信度或精度。

误差条主要表示数据集的范围和标准差。它们可以帮助可视化数据围绕平均值的分布情况。误差条可以在各种图上生成,例如条形图、线图、散点图等。

go.Scatter() 函数具有error_xerror_y 属性,这些属性控制误差条的生成方式。

  • visible (布尔值) - 确定这组误差条是否可见。

Type 属性的可能值为“percent” | “constant” | “sqrt” | “data”。它设置用于生成误差条的规则。如果为“percent”,则条形长度对应于基础数据的百分比。在此百分比中设置`value`。如果为“sqrt”,则条形长度对应于基础数据的平方。如果为“data”,则条形长度使用数据集`array`设置。

  • symmetric 属性可以为 true 或 false。相应地,误差条的长度在两个方向上相同或不同(垂直条的顶部/底部,水平条的左侧/右侧)。

  • array - 设置与每个误差条长度相对应的数据。值相对于基础数据绘制。

  • arrayminus - 设置与垂直(水平)条的底部(左侧)方向的每个误差条长度相对应的数据。值相对于基础数据绘制。

以下代码在散点图上显示对称误差条:

trace = go.Scatter(
   x = [0, 1, 2], y = [6, 10, 2],
   error_y = dict(
   type = 'data', # value of error bar given in data coordinates
   array = [1, 2, 3], visible = True)
)
data = [trace]
layout = go.Layout(title = 'Symmetric Error Bar')
fig = go.Figure(data = data, layout = layout)
iplot(fig)

以下是上述代码的输出。

Error Bar Plot

通过以下脚本渲染非对称误差图:

trace = go.Scatter(
   x = [1, 2, 3, 4], 
   y =[ 2, 1, 3, 4],
   error_y = dict(
      type = 'data',
      symmetric = False,
      array = [0.1, 0.2, 0.1, 0.1], 
      arrayminus = [0.2, 0.4, 1, 0.2]
   )
)
data = [trace]
layout = go.Layout(title = 'Asymmetric Error Bar')
fig = go.Figure(data = data, layout = layout)
iplot(fig)

其输出如下所示:

Asymmeric Error Bar
广告