Plotly教程

Plotly 箱线图和轮廓图

本章着重详细了解各种绘图,包括箱形图、小提琴图、等高线图和箭袋图。最初,我们将从箱线图开始。

箱线图

箱线图显示一组数据的摘要,其中包含最小值、 第一四分位数、中位数、第三四分位数最大值。在一个盒子里ot,我们从第一个四分位数到第三个四分位数绘制一个框。一条垂直线穿过中间的盒子。从表示上下四分位数之外的可变性的框垂直延伸的线称为须线。因此,箱线图也称为箱线图和 须线图。胡须从每个四分位数到最小值或最大值。
方框图
要绘制箱形图,我们必须使用 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 参数
go.Box() 函数可以被赋予各种其他参数来控制箱形图的外观和行为。其中之一是 boxmean 参数。
boxmean 参数默认设置为 true。因此,框的基础分布的平均值被绘制为框内的虚线。如果设置为sd,也会绘制分布的标准差。
boxpoints 参数默认等于" 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

小提琴图

小提琴图类似于箱线图,不同之处在于它们还显示了数据在不同值下的概率密度。小提琴图将包括数据中位数的标记和指示四分位距的框,与标准箱线图一样。叠加在此箱线图上的是核密度估计。与箱线图一样,小提琴图用于表示不同"类别"之间的变量分布(或样本分布)的比较。
小提琴图比普通箱线图提供更多信息。事实上,箱线图仅显示汇总统计数据,例如均值/中位数和四分位距,而小提琴图则显示了 数据的完整分布
小提琴跟踪对象由 graph_objects 模块中的 go.Violin() 函数返回。为了显示底层箱线图, boxplot_visible 属性设置为 True。同样,通过将 meanline_visible 属性设置为 true,小提琴内会显示一条与样本均值相对应的线。
以下示例演示了如何使用 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)
输出如下-
小提琴图

等高线图

二维等高线图显示二维数值数组 z 的等高线,即 z 的 isovalues 的插值线。两个变量的函数的等高线是一条曲线,沿着该曲线该函数具有一个常数值,因此该曲线连接等值的点。
如果您想查看某个值 Z 如何作为两个输入( XY)的函数而变化,使得 Z = f (X,Y)。两变量函数的等高线或等值线是函数沿其具有恒定值的曲线。
自变量 x 和 y 通常仅限于称为 meshgrid 的常规网格。 numpy.meshgrid 从 x 值数组和 y 值数组中创建一个矩形网格。
让我们首先使用 Numpy 库中的 linspace() 函数为 x、y 和 z 创建数据值。我们从 x 和 y 值创建一个 meshgrid 并获得由 x2+y2 的平方根组成的 z 数组
我们在 graph_objects 模块中有 go.Contour() 函数,它接受 x、 yz 属性.以下代码片段显示 x、 yz 值的等高线图,如上计算。
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 数据。
如果 xtype(或 ytype)等于"array",则 x/y 坐标由"x"/"y"给出。如果"缩放",x 坐标由"x0"和" dx"给出。
connectgaps 参数确定是否填充 z 数据中的间隙。 ncontours 参数的默认值为 15、实际轮廓数将自动选择小于或等于 `ncontours` 的值。仅当 `autocontour` 为"True"时有效。
等高线类型默认为:" levels",因此数据表示为显示多个级别的等高线图。如果 constrain,则数据表示为约束,带有由 operationvalue 参数指定的阴影无效区域。
showlines-确定是否绘制轮廓线。
zauto 默认为 True 并确定是否根据输入数据(此处为"z")或中设置的边界计算色域` zmin` 和 ` zmax` 当 `zmin` 和 `zmax` 由用户设置时,默认为 ` False`。

箭袋图

箭袋图也称为 速度图。它将速度矢量显示为在点 (x,y) 处带有分量 ( u,v) 的箭头。为了绘制 Quiver 图,我们将使用在 Plotly 的 figure_factory 模块中定义的 create_quiver() 函数。
Plotly 的 Python API 包含一个图形工厂模块,其中包含许多包装函数,这些函数可以创建尚未包含在 Plotly 开源图形库 plotly.js 中的独特图表类型。
create_quiver() 函数接受以下参数-
x-箭头位置的 x 坐标 y-箭头位置的 y 坐标 u-箭头向量的 x 个分量 v-箭头向量的 y 分量 scale-缩放箭头的大小 arrow_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)
代码输出如下-
箭袋图
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4