Metabase学习教程:仪表盘-5

如何进行时间段比较

我们通过不同的方法来比较一个指标在不同日期范围内的表现。

我们将研究不同的策略来比较两个不同时期的指标,比如将本周与上周、去年同期与上一周进行比较。我们将使用Metabase附带的示例数据库,这样您就可以继续学习了。这个示例数据库包含了2015年至2020年期间存在的一家完全真实、完全虚构的公司的订单信息。为了提高我们的查询生成器技能,我们对2018年与2019年订单的对比感兴趣。

本文基于上一篇文章时间序列比较,但这里我们讨论两种不同的策略:

  • 在仪表盘上并排比较时间段
  • 在同一图表上叠加两个时间序列

在仪表盘上并排比较时间段

Metabase学习教程:仪表盘-5_第1张图片

图1.dashboard有两列,左边是Date 1,右边是Date 2,每个列都有连接到各自的筛选器小部件的卡片。第三个小部件连接到两列中的卡,以筛选产品类别。

此模式易于维护和扩展(通过修改卡或添加新卡),当您要比较多个指标时,它尤其有用。

第一步是创建一个问题。对于我们的数据,我们将选择Orders。我们将汇总订单数量,并按月分组。然后我们将问题保存为每月订单数

Metabase学习教程:仪表盘-5_第2张图片

图2。我们的问题的笔记本视图,总结了按月份分组的订单计数

接下来,我们将把每月订单问题添加到一个新的仪表盘,并将该仪表盘称为并排比较,或其他任何方式。然后,我们将同样的问题每月订单数再次添加到仪表盘(即,作为第二张卡片),将其放在原始问题的右侧。

我们在这里要做的是在仪表盘中创建两个列:左栏有一个日期范围,右栏有第二个日期范围。我们会的安装过滤器为了控制卡片的日期范围,左栏(如图3所示)和另一个过滤器控制右栏的日期范围。

我们将为每个过滤器使用“Between”选项设置默认日期范围(您可以键入日期,而不是单击日历)。

  • 日期1范围:2018年1月1日2018年12月31日
  • 日期2范围:2019年1月1日2019年12月31日

Metabase学习教程:仪表盘-5_第3张图片

图3。将日期1筛选器附加到左栏(而不是右栏)的每张卡片上。

保存更改,然后刷新页面以更新结果。我们还可以将其他筛选器附加到仪表盘,以便在两列中连接到卡片,例如,如果要按特定类别筛选订单。

您可以添加带有时间序列的附加卡,并将它们连接到该列对应的筛选器。

并列比较提示

请记住,这种模式在查看手机时会崩溃,因为Metabase会将每张卡折叠成一列。您仍然可以理解仪表盘,但它要求您仔细查看每张卡片的日期。

对每一列使用相同的问题

这样,如果你想修改问题,你只需要更新一个问题,两列都会得到更新。

确保两张卡片上的坐标轴相同

Metabase默认自动调整y轴以考虑这些值,但如果一张卡的最高值为500,而另一张卡的最高值为1000,则很难看到两张卡之间的差异。在仪表盘编辑模式下,将鼠标悬停在某个卡上,然后单击调色板图标以编辑可视化设置。单击轴线tab,关掉自动y轴范围并设置y轴最大值(应将最小值保留为0)。

Metabase学习教程:仪表盘-5_第4张图片

图4。将y轴最大值设置为600。

使用目标线和/或趋势线

添加线条可以使人们更容易在图表中区分度量性能。在图1中,很明显,2019年的订单比2018年更经常超过目标。

为了使人们更容易理解拆分设置,我们可以添加文本卡,指示每个列对应于其中一个筛选器:左侧列对应日期1,右侧列对应日期2。在仪表盘编辑模式下,您可以通过将鼠标悬停在卡片上并单击调色板图标。例如,对于##日期1,我们设置了垂直对齐顶部水平对准切换到中心,然后关闭显示背景设置。

使用颜色区分列

您可以使用不同的颜色来区分每列中的卡。将鼠标悬停在一张卡片上,然后单击调色板图标更新卡的可视化设置。

有关仪表盘的更多提示,请查看BI仪表盘最佳实践.

在同一图表上叠加两个时间序列

现在开始一个完全不同的方法。这里我们将介绍两种模式:

  • 使用自定义列对静态日期范围进行分组
  • 使用自定义表达式将上周与前一周进行比较

使用自定义列对静态日期范围进行分组

在这里我们将使用Case语句来创建自定义列。我们可以使用之间表达式。在这里,我们将使用自定义表达式.

case(between([Created At], "2018-01-01", "2018-12-31"), "2018", between([Created At], "2019-01-01", "2019-12-31"), "2019")

这个表达式的意思是,对于结果中的每个记录(行),添加一个新列。如果Created At字段在201811日至20181231日之间,在该记录的年份列中输入值“2018”。如果Created At日期介于2019年的范围内,用“2019”代替。否则,请将其留空。接下来,我们要过滤我们创建的年份列不是空的所有记录。

Metabase学习教程:仪表盘-5_第5张图片

图5。查询编辑器包含一个名为“年”的自定义列,筛选出空的年份,并按年份对订单和组进行计数,并按年创建。

这里我们有两个时间序列,2018年和2019年,在同一个图表上:

Metabase学习教程:仪表盘-5_第6张图片

图6.同一图表上的两个时间序列。

你也可以把它想象成条形图:

Metabase学习教程:仪表盘-5_第7张图片

图7。与图6中的序列相同,但与条形图相同。

现在,如果要比较日期与当前日期的关系,可以使用interval函数case语句,但我们将介绍interval下一个。

使用自定义表达式将上周与前一周进行比较

在上一篇关于时间序列比较 CountIf聚合和between功能。这次我们要用interval函数,它允许我们指定相对于当前日期的持续时间。

示例数据库只有到2020年的数据(不确定公司发生了什么),所以您需要在自己的数据上尝试一下,但它的工作原理如下:

Orders作为我们的起始数据,我们将添加两个摘要(指标)。在总结节中,我们将使用一个名为上周的自定义表达式定义一个摘要:

CountIf(interval([Created At], -1, "week"))

interval-speak中,0表示当前星期,所以我们写-1来仅在Created At因为那一排是从上周开始的。我们也可以将改为或其他间隔;检查数据库的文档,查看它支持哪些间隔。

接下来,我们将为前一周定义第二个摘要。

CountIf(interval([Created At], -2, "week") AND NOT interval([Created At], -1, "week"))

这里我们说的是只统计前两周的所有订单,除了(AND NOT)上周的订单。

最后,我们需要对总结进行分组。既然我们想看看上星期一和前一个星期一(以及一周中每隔一天)的表现,我们就想分组Created At通过星期几

Metabase中文社区

你可能感兴趣的:(Metabase,BI,可视化,大数据,Metabase,bi,可视化)