Plotly 箱线图 小提琴图和等高线图


本章重点详细了解箱线图、小提琴图、等高线图和箭袋图等各种图。最初,我们将从下面的箱线图开始。

Box Plot


箱线图显示包含最小值的一组数据的摘要, 第一四分位数、中位数、第三四分位数 , and maximum .在箱线图中,我们从第一个四分位数到第三个四分位数绘制一个框。一条垂直线穿过中间的盒子。从方框垂直延伸的线表示上四分位数和下四分位数之外的可变性,称为须线。因此,箱线图也称为箱形图和 晶须图 .胡须从每个四分位数到最小值或最大值。

Box Plot

要绘制箱形图,我们必须使用 go.Box() 功能。数据系列可以分配给 x 或 y 参数。因此,箱线图将水平或垂直绘制。在以下示例中,某公司在其各个分支机构的销售数据转换为水平箱形图。它显示了最小值和最大值的中值。

trace1 = go.Box(y = [1140,1460,489,594,502,508,370,200])
data = [trace1]
fig = go.Figure(data)
iplot(fig)

同样的输出如下:

BoxPoints Parameter

The go.Box() 函数可以被赋予各种其他参数来控制箱线图的外观和行为。其中之一是 boxmean 参数。

The boxmean 参数默认设置为true。结果,框的基本分布的平均值在框内绘制为虚线。如果设置为 sd,也会绘制分布的标准差。

The 箱点 参数默认等于“ outliers ”。仅显示位于胡须外的样本点。如果“怀疑异常值”,则显示异常值点,并突出显示小于 4“Q1-3”Q3 或大于 4“Q3-3”Q1 的点。如果“ False",仅显示没有样本点的框。

在以下示例中, 盒子痕迹 用标准差和离群点绘制。

trc = go.Box(
    y = [
        0.75, 5.25, 5.5, 6, 6.2, 6.6, 6.80, 7.0, 7.2, 7.5, 7.5, 7.75, 8.15,
        8.15, 8.65, 8.93, 9.2, 9.5, 10, 10.25, 11.5, 12, 16, 20.90, 22.3, 23.25
    ],
    boxpoints = 'suspectedoutliers', boxmean = 'sd'
)
data = [trc]
fig = go.Figure(data)
iplot(fig)

同样的输出如下:

Box Trace

小提琴Plotly


小提琴图类似于箱线图,不同之处在于它们还显示了数据在不同值下的概率密度。小提琴图将包括数据中位数的标记和指示四分位数范围的框,如标准箱形图。覆盖在此箱形图上的是核密度估计。与箱线图一样,小提琴图用于表示跨不同“类别”的变量分布(或样本分布)的比较。

小提琴图比普通的箱形图更能提供信息。事实上,虽然箱线图只显示汇总统计数据,例如平均值/中位数和四分位距,但小提琴图显示的是 数据的完整分布 .

小提琴跟踪对象由返回 go.Violin() 作用于 图对象 模块。为了显示底层箱线图, boxplot_visible 属性设置为 True。同样,通过设置 meanline_visible 属性为真,对应于样本平均值的线显示在小提琴内部。

以下示例演示了如何使用 plotly 的功能显示小提琴图。

import numpy as np
np.random.seed(10)
c1 = np.random.normal(100, 10, 200)
c2 = np.random.normal(80, 30, 200)
trace1 = go.Violin(y = c1, meanline_visible = True)
trace2 = go.Violin(y = c2, box_visible = True)
data = [trace1, trace2]
fig = go.Figure(data = data)
iplot(fig)

输出如下:

Violin Plot

等高线图


2D 等高线图显示了 2D 数值数组 z 的等高线,即 等值 z。两变量函数的等高线是一条曲线,函数沿该曲线具有一个常数值,因此该曲线连接了等值点。

如果你想查看某个值 Z 作为两个输入的函数如何变化,则等值线图是合适的, X and Y 这样 Z = f(X,Y) .两个变量的函数的等值线或等值线是函数沿其具有恒定值的曲线。

自变量 x 和 y 通常被限制在称为 meshgrid 的规则网格中。 numpy.meshgrid 从 x 值数组和 y 值数组创建一个矩形网格。

让我们首先使用创建 x、y 和 z 的数据值 林空间() Numpy 库中的函数。我们创建一个 meshgrid 从 x 和 y 值获得由平方根组成的 z 数组 x2+y2

We have go.Contour() 作用于 图对象 采用 x 的模块, y and z 属性。以下代码片段显示 x 的等高线图, y and z 如上计算的值。

import numpy as np
xlist = np.linspace(-3.0, 3.0, 100)
ylist = np.linspace(-3.0, 3.0, 100)
X, Y = np.meshgrid(xlist, ylist)
Z = np.sqrt(X**2 + Y**2)
trace = go.Contour(x = xlist, y = ylist, z = Z)
data = [trace]
fig = go.Figure(data)
iplot(fig)

输出如下:

Contour Plot

等高线图可以通过以下一个或多个参数自定义:

  • 转置(布尔值) :转置z数据。

If xtype (or ytype ) 等于“数组”,x/y 坐标由“x”/“y”给出。如果“缩放”,x 坐标由“x0”和“ dx ".

  • The 连接间隙 参数决定是否填充 z 数据中的空白。

  • 默认值 轮廓 参数为 15。实际的轮廓数将自动选择为小于或等于 `ncontours` 的值。仅当 `autocontour` 为“True”时才有效。

轮廓类型默认为:" levels " 因此数据表示为显示多个级别的等高线图。如果 约束 ,数据表示为约束,其中无效区域由 手术 and value 参数。

秀场 :决定是否绘制等高线。

zauto is True 默认情况下,并确定颜色域是根据输入数据(此处在 `z` 中)还是在 ` 中设置的边界计算的 zmin ` and ` zmax ` 默认为 ` False ` 当 `zmin` 和 `zmax` 由用户设置时。

箭袋Plotly


箭袋Plotly 也被称为 速度图 .它将速度矢量显示为带有分量的箭头 ( u,v ) 在点 (x,y)。为了绘制 Quiver 图,我们将使用 create_quiver() 函数定义在 人物工厂 Plotly 中的模块。

Plotly 的 Python API 包含一个图形工厂模块,其中包括许多包装函数,这些函数创建了尚未包含在 Plotly .js , Plotly 的开源图形库。

create_quiver() 函数接受以下参数:

  • x : 箭头位置的x坐标

  • y : 箭头位置的y坐标

  • u : 箭头向量的x分量

  • v :箭头向量的y分量

  • scale : 刻度箭头的大小

  • 箭头刻度 : 箭头长度。

  • angle : 箭头角度。

以下代码在 Jupyter notebook 中呈现了一个简单的颤动图:

import plotly.figure_factory as ff
import numpy as np
x,y = np.meshgrid(np.arange(-2, 2, .2), np.arange(-2, 2, .25))
z = x*np.exp(-x**2 - y**2)
v, u = np.gradient(z, .2, .2)

# Create quiver figure
fig = ff.create_quiver(x, y, u, v,
scale = .25, arrow_scale = .4,
name = 'quiver', line = dict(width = 1))
iplot(fig)

代码输出如下:

Quiver Plot