学习如何创建 时间序列 可视化图表,并构建跟踪趋势随时间变化的仪表板。本教程使用电子商务示例 数据分析 销售模式,但你可以将这些方法应用于任何基于时间的数据。
完成后,你将拥有一个完整的仪表板,展示销售趋势、收入模式和客户行为随时间的变化。
你也可以通过 ES|QL 查询创建时间序列图表。请从构建时间序列图表开始。使用 kibana_sample_data_ecommerce 索引,并将 @timestamp 替换为该索引的 order_date 时间字段。

加载数据
我们按照如下的步骤来加载数据:




这样我们的 kibana_sample_data_ecommerce 索引已经安装好了。



打开并设置可视化编辑器
打开可视化编辑器,然后确保显示正确的字段。
- 创建可视化图表。
-
无服务器版本及技术栈9.2及以上版本
在应用程序菜单中选择添加 > 可视化。
-
技术栈9.0--9.1版本
点击创建可视化。
-
- 确保显示 Kibana 电子商务示例数据 数据视图,然后将时间筛选器设置为过去30天。


使用自定义时间间隔创建 可视化图表
使用时间序列数据创建可视化图表时,你可以使用默认时间间隔,也可以增大或减小间隔。出于性能考虑,可视化编辑器允许你选择最小时间间隔,但无法指定确切的时间间隔。间隔限制由 histogram:maxBars 设置和时间范围控制。
要使用自定义时间间隔分析数据,请创建一个柱状图,展示你的商店每小时的订单数量:
1)从可用字段 列表中,将 Records 拖到工作区。
可视化编辑器会创建一个柱状图。
2)要放大查看数据,请在柱形上按住鼠标并拖动光标。




3)在图层面板中,点击记录数。
-
点击高级(Advanced)。
-
从按单位归一化 下拉列表中选择每小时 ,然后点击关闭。
按单位归一化 通过除以24,将
记录数转换为每小时记录数。 -
在名称 字段中,输入
订单数量。 -
点击关闭。
4)要隐藏水平轴 标签,请打开底部坐标轴 菜单,然后从坐标轴标题 下拉列表中选择无。
要标识订单的第75百分位数,请添加参考线:
- 在图层面板中,点击矢量图标添加图层 > 参考线。
- 点击静态值 。
- 点击快捷函数 ,然后点击百分位数。
- 从字段 下拉列表中选择 total_quantity。
- 在参考线值 字段中,输入
75。
- 配置外观 选项。
- 在名称 字段中,输入
第75百分位数。 - 要显示名称,请从文本装饰 中选择名称。
- 从图标装饰 下拉列表中选择标签。
- 在颜色 字段中,输入
#E7664C。
- 在名称 字段中,输入
- 点击关闭。










分析多个数据序列
你可以在同一时间间隔内创建包含多个数据序列的可视化图表,即使这些序列的配置相似、仅有细微差异。
要分析多个序列,请创建一个折线图,展示已售商品的价格分布随时间的变化:
1)创建可视化图表。
-
无服务器版本及技术栈9.2及以上版本
在应用程序菜单中选择添加 > 可视化。
-
技术栈9.0--9.1版本
在仪表板工具栏中点击创建可视化。

2)打开可视化类型 下拉列表,然后选择折线图。

3)从可用字段 列表中,将 products.price 拖到工作区。


创建价格分布的第 95 百分位数:
1)在图层面板中,点击 Median of products.price。

2)点击百分位数函数。

3)在名称 字段中,输入第95百分位数,然后点击关闭。

要复制函数,请将其拖到同一分组中的添加或拖放字段 区域。要创建第90百分位数,请复制第95百分位数:
1)将第95百分位数 字段拖到垂直轴 的添加或拖放字段区域。

2)点击第95百分位数 1 ,然后在百分位数 字段中输入90。
3)在名称 字段中输入第90百分位数,然后点击关闭。

4)要创建第50百分位数和第10百分位数,请重复上述复制步骤。

5)打开左侧坐标轴 菜单,从坐标轴标题 下拉列表中选择自定义 ,然后在坐标轴标题字段中输入 Percentiles for product prices。



分析多种可视化类型
通过图层(Layers),你可以在同一个可视化图表中使用多种可视化类型来分析数据。
创建多图层可视化图表时,需要确保各图层在**横轴(Horizontal Axis)**上使用相同的数据范围和刻度,以便进行准确比较。
为了结合多种可视化类型进行分析,我们将首先创建一个面积图(Area Chart),展示平均订单价格,然后添加一个**折线图(Line Chart)**图层,展示客户数量。
创建面积图,展示平均价格
- 创建可视化图表。
- Serverless 和 Stack 9.2+
在应用程序菜单中,选择 Add(添加)> Visualization(可视化)。
- Stack 9.0--9.1
在仪表板工具栏中,点击 Create visualization(创建可视化)。

- 添加价格字段。
从 Available fields(可用字段) 列表中,将 products.price(产品价格) 字段拖放到工作区(Workspace)。




- 配置平均价格指标。
在图层面板(Layer Pane)中,点击 Median of products.price(产品价格中位数)。
-
选择 Average(平均值) 函数,将聚合方式从中位数改为平均值。
-
在 Name(名称) 字段中输入
Average price(平均价格),然后点击 Close(关闭)。

- 更改可视化类型。
打开 Visualization type(可视化类型) 下拉菜单,然后选择 Area(面积图)。

添加折线图图层,展示客户数量
- 添加新图层。
在图层面板中,点击 Add layer(添加图层)> Visualization(可视化)> Line(折线图)。



- 添加客户字段。
从 Available fields(可用字段) 列表中,将 customer_id(客户 ID) 字段拖放到第二个图层的 Vertical Axis(纵轴) 区域。


- 配置客户数量指标。
在图层面板中,点击 Unique count of customer_id(客户 ID 唯一值计数)。
-
在 Name(名称) 字段中输入
Number of customers(客户数量)。 -
在 Series color(数据系列颜色) 字段中输入
#D36086。 -
在 Axis side(坐标轴位置) 设置中选择 Right(右侧),然后点击 Close(关闭)。

- 从 Available fields(可用字段) 列表中,将 order_date(订单日期) 字段拖放到第二个图层的 Horizontal Axis(横轴) 区域。



- 要调整图例的位置,请打开 Legend(图例) 菜单,然后在 Position(位置) 选项中选择向上的箭头,将图例移动到图表顶部。

比较百分比随时间的变化趋势
默认情况下,可视化编辑器会使用**堆叠图表(Stacked Charts)**展示时间序列数据,以便观察不同文档集合随时间的变化情况。
如果希望以百分比的形式查看各类数据随时间的变化趋势,可以创建一个 Area Percentage(百分比堆叠面积图),展示三种订单类别在不同时间段的占比变化。
创建可视化图表
- 创建可视化图表。
- Serverless 和 Stack 9.2+
在应用程序菜单中,选择 Add(添加)> Visualization(可视化)。
- -Stack 9.0--9.1
在仪表板工具栏中,点击 Create visualization(创建可视化)。

- 添加记录数字段。
从 Available fields(可用字段) 列表中,将 Records(记录数) 拖放到工作区(Workspace)。



- 选择可视化类型。
打开 Visualization type(可视化类型) 下拉菜单,然后选择 Area(面积图)。
为每种订单类别创建过滤器
- 在图层面板(Layer Pane)中,找到 Breakdown(分类拆分),点击 Add or drag-and-drop a field(添加字段或拖放字段)。

- 点击 Filters(过滤器) 函数。

- 点击 All records(所有记录),在查询栏中输入以下内容,然后按回车键确认:
-
KQL:
category.keyword : *Clothing -
Label(标签):
Clothing(服装)

- 点击 Add a filter(添加过滤器),输入以下内容,然后按回车键确认:
-
KQL:
category.keyword : *Shoes -
Label(标签):
Shoes(鞋类)


- 再次点击 Add a filter(添加过滤器),输入以下内容,然后按回车键确认:
-
KQL:
category.keyword : *Accessories -
Label(标签):
Accessories(配饰)


-
点击 Close(关闭)。
-
打开 Legend(图例) 菜单,然后在 Position(位置) 选项中选择向上的箭头,将图例移动到图表顶部。


查看周末售出商品数量的累计值
为了统计仅在周六和周日产生的订单数量,我们可以创建一个面积图(Area Chart),然后将其添加到仪表板中。
创建可视化图表
- 创建可视化图表。
- Serverless 和 Stack 9.2+
在应用程序菜单中,选择 Add(添加)> Visualization(可视化)。
-
- Stack 9.0--9.1
在仪表板工具栏中,点击 Create visualization(创建可视化)。
- 选择可视化类型。
打开 Visualization type(可视化类型) 下拉菜单,然后选择 Area(面积图)。
x

配置商店订单的累计总数
- 从 Available fields(可用字段) 列表中,将 Records(记录数) 拖放到工作区(Workspace)。

- 在图层面板(Layer Pane)中,点击 Count of records(记录数)。

- 点击 Cumulative sum(累计求和) 函数。

- 在 Name(名称) 字段中输入
Cumulative weekend orders(周末累计订单数),然后点击 Close(关闭)。

筛选仅在周六和周日产生的订单
- 在图层面板中,找到 Breakdown(分类拆分),点击 Add or drag-and-drop a field(添加字段或拖放字段)。

- 点击 Filters(过滤器) 函数。

- 点击 All records(所有记录),在查询栏中输入以下内容,然后按回车键确认:
- KQL:
arduino
`day_of_week : "Saturday" or day_of_week : "Sunday"`AI代码解释
- Label(标签):
Saturday and Sunday(周六和周日)

该 KQL 过滤器会筛选出 day_of_week 字段值为 Saturday(周六)或 Sunday(周日)的所有文档。
-
点击 Close(关闭)。
-
打开 Legend(图例) 菜单,然后在 Visibility(可见性) 选项旁点击 Hide(隐藏),以隐藏图例。


完成后,你将得到一个展示周末订单累计数量随时间变化趋势的面积图,帮助你分析周末订单量的增长情况。


比较不同时间范围
使用 Time shift(时间偏移) 功能,可以比较不同时间范围内的数据。
为了确保数据能够正确显示,当使用多个时间偏移时,应选择日期直方图(Date Histogram)时间间隔的整数倍作为偏移量。
例如,如果日期直方图的时间间隔设置为 days(天),就不能为一个数据系列设置 36h(36 小时)的时间偏移,同时为另一个数据系列设置 1d(1 天)的时间偏移。
创建不同时间范围的对比图表
为了比较两个不同时间范围的数据,我们将创建一个折线图(Line Chart),对比本周与上周的销售情况。
- 创建可视化图表。
- Serverless 和 Stack 9.2+
在应用程序菜单中,选择 Add(添加)> Visualization(可视化)。
- Stack 9.0--9.1
在仪表板工具栏中,点击 Create visualization(创建可视化)。

- 选择可视化类型。
打开 Visualization type(可视化类型) 下拉菜单,然后选择 Line(折线图)。

- 添加记录数字段。
从 Available fields(可用字段) 列表中,将 Records(记录数) 拖放到工作区(Workspace)。

- 复制记录数指标。
在图层面板(Layer Pane)中,将 Count of records(记录数) 拖放到 Vertical axis(纵轴) 下的 Add or drag-and-drop a field(添加字段或拖放字段) 区域,以复制该指标。

配置按周同比对比
为了实现本周与上周的环比对比( Week -over-Week Comparison),我们需要将第二个 Count of records 指标的时间范围向前偏移一周。
- 在图层面板中,点击 Count of records 1。

-
点击 Advanced(高级设置)。
-
在 Time shift(时间偏移) 下拉菜单中,选择 1 week ago(1 周前),然后点击 Close(关闭)。

如果希望使用自定义时间偏移,可以直接输入时间数值及其单位,然后按 Enter 键确认。
例如,输入 1w,即可将时间范围向前偏移一周,相当于选择 1 week ago(1 周前)。
完成后,折线图将同时展示当前时间范围与前一周对应时间范围的数据,方便你直观比较两者的变化趋势。

- 点击 Save and return(保存并返回)。
Time shift(时间偏移) 功能可以应用于任何指标(Metric)。
其中,特殊的时间偏移选项 previous(上一时间段),可以显示当前所选时间范围之前、且持续时间相同的时间段内的数据。
例如,如果在右上角的时间选择器(Time Picker)中选择 Last 7 days(最近 7 天),那么 previous 将显示 14 天前至 7 天前的数据。
这样,你就可以方便地比较当前时间段与前一个等长时间段的指标变化。
注意: previous 模式不能与 Date histogram(日期直方图) 同时使用。
分析不同时间范围之间的百分比变化
使用 Formula(公式) 功能,可以分析不同时间范围内的数据百分比变化。
为了以百分比的形式比较不同时间段的数据,我们将创建一个柱状图(Bar Chart),对比本周与上周的销售情况。
1)创建可视化图表。
-
Serverless 和 Stack 9.2+
在应用程序菜单中,选择 Add(添加)> Visualization(可视化)。
-
Stack 9.0--9.1
在仪表板工具栏中,点击 Create visualization(创建可视化)。

2)添加记录数字段。
从 Available fields(可用字段) 列表中,将 Records(记录数) 拖放到工作区(Workspace)。

3)在图层面板(Layer Pane)中,点击 Count of records(记录数)。
4)点击 Formula(公式),然后在 Formula 字段中输入:
scss
`count() / count(shift='1w') - 1`AI代码解释
5)在 Name(名称) 字段中输入 Percent of change(百分比变化率)。

6)在 Value format(数值格式) 下拉菜单中,选择 Percent(百分比),然后在 Decimals(小数位数) 字段中输入 0,以整数百分比形式显示结果。

7)点击 Close(关闭)。
完成后,图表将展示本周相对于上周的百分比变化,帮助你快速判断销售活动是在增长还是下降。
注意: 这里使用 count() 计算的是记录数变化。如果每条记录代表一个订单,该指标反映的是订单数量的变化,而不是实际销售金额的变化。
8)点击 Save and return(保存并返回)。

使用表格分析数据
使用表格(Table),你可以查看和比较不同字段的值,这对于展示客户订单的地理位置分布非常有用。
接下来,我们将创建一个基于**日期直方图(Date Histogram)**的表格,并按照类别(例如用户账户注册所在的大洲)对客户数量指标进行分组。
创建表格可视化
- 创建可视化图表。
- Serverless 和 Stack 9.2+
在应用程序菜单中,选择 Add(添加)> Visualization(可视化)。
- Stack 9.0--9.1
在仪表板工具栏中,点击 Create visualization(创建可视化)。

- 选择可视化类型。
打开 Visualization type(可视化类型) 下拉菜单,然后选择 Table(表格)。

- 添加客户数量指标。
从 Available fields(可用字段) 列表中,将 customer_id(客户 ID) 字段拖放到图层面板(Layer Pane)中的 Metrics(指标) 区域。

-
在图层面板中,点击 Unique count of customer_id(客户 ID 唯一值计数)。
-
在 Name(名称) 字段中输入
Customers(客户数),然后点击 Close(关闭)。

- 添加订单日期字段。
从 Available fields(可用字段) 列表中,将 order_date(订单日期) 字段拖放到图层面板中的 Rows(行) 区域。
-
在图层面板中,点击 order_date。
-
在 Minimum interval(最小时间间隔) 字段中输入
1d(1 天)。 -
在 Name(名称) 字段中输入
Sales(销售),然后点击 Close(关闭)。


按大洲拆分客户数量指标
为了按大洲展示客户数量,我们可以使用 Split metrics by(按字段拆分指标) 功能,为每个大洲创建独立的列。
- 从 Available fields(可用字段) 列表中,将 geoip.continent_name(大洲名称) 字段拖放到图层面板中的 Split metrics by(按字段拆分指标) 区域。


保存仪表板
现在,你已经创建了一个能够全面展示电商销售数据的仪表板,接下来可以将其保存。
-
在应用程序菜单中,点击 Save(保存)。
-
在 Save dashboard(保存仪表板) 窗口中,输入
eCommerce sales(电商销售)。 -
勾选 Store time with dashboard(随仪表板保存时间范围),以保存当前设置的时间筛选条件。
-
点击 Save(保存)。



