Plotly 简明教程

Plotly - Distplots Density Plot and Error Bar Plot

在本章中,我们将详细了解 distplot、密度图和误差棒图。让我们从了解 distplot 开始。

Distplots

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

distplot 可以由以下 3 个组件的全部或任意组合组成 −

  1. histogram

  2. curve:(a)核密度估计或(b)正态分布,以及

  3. rug plot

figure_factory 模块具有 create_distplot() 函数,需要称为 hist_data 的强制参数。

以下代码创建一个基本 distplot,它包含一个直方图、一个 kde 图和一个 rug 图。

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

以上提到的这段代码的输出内容如下 −

distplots

Density Plot

密度图是根据数据估计出的直方图的平滑连续版本。最常见的估计形式称为 kernel density estimation (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

Error Bar Plot

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

误差棒对解决问题者十分有用,因为误差棒显示出一组测量或计算值中的置信度或精确度。

错误线通常表示数据集的范围和标准差。它们可以帮助显示数据如何围绕平均值分布。可以在各种绘图上生成错误线,例如条形图、折线图、散点图等。

go.Scatter() 函数具有 error_xerror_y 属性,用于控制如何生成错误线。

  1. visible (boolean) − 确定这组错误线是否可见。

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

  1. symmetric 属性可以为 true 或 false。因此,错误线将具有相同长度,且方向相同或不同(垂直条形的顶部/底部,水平条形的左右)。

  2. array − 设置对应于每个错误线长度的数据。值相对于基础数据绘制。

  3. 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