- Plotly教程
- 阴谋 - 主页
- Plotly - 简介
- Plotly - 环境设置
- Plotly - 在线和离线绘图
- 使用 Jupyter Notebook 内联绘图
- Plotly - 包结构
- Plotly - 导出到静态图像
- Plotly - 传奇
- Plotly - 设置轴和刻度的格式
- Plotly - 子图和插图
- Plotly - 条形图和饼图
- Plotly - 散点图、Scattergl 图和气泡图
- Plotly - 点图和表格
- Plotly - 直方图
- Plotly - 箱线图小提琴图和等高线图
- Plotly - 分布图、密度图和误差条图
- Plotly - 热图
- Plotly - 极坐标图和雷达图
- Plotly - OHLC 图表瀑布图和漏斗图
- Plotly - 3D 散点图和曲面图
- Plotly - 添加按钮/下拉菜单
- Plotly - 滑块控制
- Plotly -FigureWidget 类
- 与pandas和袖扣密谋
- 使用 Matplotlib 和 Chart Studio 绘图
- 非常有用的资源
- Plotly - 快速指南
- Plotly - 有用的资源
- Plotly - 讨论
Plotly - 箱线图、小提琴图和等高线图
本章重点详细了解各种图,包括箱线图、小提琴图、等高线图和箭袋图。首先,我们将从箱线图开始。
箱形图
箱线图显示一组数据的摘要,其中包含最小值、第一四分位数、中位数、第三四分位数和最大值。在箱线图中,我们从第一个四分位数到第三个四分位数绘制一个方框。一条垂直线穿过中间的盒子。从方框垂直延伸的线表示上四分位数和下四分位数之外的变异性,这些线称为须线。因此,箱线图也称为箱须图。须线从每个四分位数到最小值或最大值。
要绘制箱形图,我们必须使用go.Box()函数。数据系列可以分配给 x 或 y 参数。因此,箱线图将水平或垂直绘制。在下面的示例中,将某公司各个分支机构的销售额数据转换为水平箱线图。它显示最小值和最大值的中位数。
trace1 = go.Box(y = [1140,1460,489,594,502,508,370,200]) data = [trace1] fig = go.Figure(data) iplot(fig)
其输出如下 -
go.Box ()函数可以被赋予各种其他参数来控制箱线图的外观和Behave。boxmean 参数就是其中之一。
boxmean参数默认设置为 true。因此,框的基础分布的平均值被绘制为框内的虚线。如果设置为sd,还绘制分布的标准差。
boxpoints参数默认等于“异常值”。仅显示位于晶须外部的样本点。如果“可疑异常值”,则显示异常值点,并且突出显示小于 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)
其输出如下所示 -
小提琴Plotly
小提琴图与箱线图类似,不同之处在于它们还显示不同值下数据的概率密度。小提琴图将包括数据中位数的标记和指示四分位数范围的框,如标准箱线图一样。覆盖在该箱形图上的是核密度估计。与箱线图类似,小提琴图用于表示不同“类别”之间的变量分布(或样本分布)的比较。
小提琴图比普通箱线图提供更多信息。事实上,虽然箱形图仅显示平均值/中位数和四分位距等汇总统计数据,但小提琴图显示了数据的完整分布。
Violin 跟踪对象由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 等值的插值线。两个变量的函数的等高线是一条曲线,沿该曲线函数具有恒定值,因此该曲线连接了相等值的点。
如果您想查看某个值 Z 作为两个输入X和Y的函数如何变化,使得Z = f(X,Y) ,那么等高线图是合适的。两个变量函数的等值线或等值线是函数具有恒定值的曲线。
自变量 x 和 y 通常仅限于称为 meshgrid 的规则网格。numpy.meshgrid 使用 x 值数组和 y 值数组创建一个矩形网格。
让我们首先使用Numpy 库中的linspace()函数创建 x、y 和 z 的数据值。我们从 x 和 y 值创建一个网格,并获得由x2+y2的平方根组成的 z 数组
我们在graph_objects模块中有go.Contour()函数,它接受 x、y和z属性。以下代码片段显示了按上述方法计算的 x、 y和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)
输出如下 -
等值线图可以通过以下一个或多个参数自定义 -
Transpose (boolean) - 转置 z 数据。
如果xtype(或ytype)等于“array”,则 x/y 坐标由“x”/“y”给出。如果“缩放”,则 x 坐标由“x0”和“ dx ”给出。
connectgaps参数确定是否填充 z 数据中的间隙。
ncontours参数的默认值为15。实际轮廓数将自动选择小于或等于“ncontours”的值。仅当“autocontour”为“True”时才有效。
等值线类型默认为:“级别”,因此数据表示为显示多个级别的等值线图。如果constrain,则数据表示为约束,其中无效区域按操作和值参数指定着色。
showlines - 确定是否绘制等高线。
zauto默认情况下为True,并确定是否根据输入数据(此处为“z”)或“ zmin ”和“ zmax ”中设置的边界计算颜色域,当“zmin”和“zmin ”时默认为“ False ” `zmax` 由用户设置。
箭袋图
箭袋图也称为速度图。它将速度矢量显示为箭头,其分量 ( u,v ) 位于点 (x,y)。为了绘制 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 - 箭头的长度。
角度- 箭头的角度。
以下代码在 Jupyter 笔记本中呈现一个简单的颤动图 -
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)
代码的输出如下 -