Metabase学习教程:仪表盘-5

news2024/10/7 18:24:47

如何进行时间段比较

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

并列比较提示

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

对每一列使用相同的问题

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

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

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

图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”代替。否则,请将其留空。接下来,我们要过滤我们创建的年份列不是空的所有记录。

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

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

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

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

图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中文社区

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/45551.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Android App】Vulkan实现宇宙中旋转雷达动画效果(附源码和原始视频 超详细必看)

需要源码请点赞关注收藏后评论区留言私信~~~ 一、Vulkan简介 Vulkan是一个跨平台的图形绘制接口,被称为下一代OpenGL,因为尽管OpenGL提供了丰富的图形API,但他在底层实现的C代码早已封装起来,由于开发者修改不了底层代码&#xf…

社区系统项目复盘-5

文章目录Kafka消息队列实现系统通知功能什么是Kafka?Spring是怎么整合Kafka的?发送系统通知显示系统通知Kafka消息队列实现系统通知功能 阻塞队列 可以用阻塞队列来实现消息队列,阻塞队列是一个接口:BlockingQueue,可以…

易云维医院后勤综合管理平台为医院智慧后勤的建设与发展做出贡献

近年来,随着国家医疗卫生改革进程的不断推进,越来越多的医院开始关注运营成本控制问题,医院后勤管理服务模式的创新和优化变得越来越重要。利用医院后勤综合管理平台将医院后勤管理信息化将极大地提高医院智慧后勤建设与发展。在这种形势下&a…

Mac下安装Hadoop

1、引言 如果想在Mac下安装Hadoop而且让Hadoop能正常运行,那安装之前需要先安装java,在Mac环境下安装Hadoop。 2、配置ssh环境 在Mac下如果想使用Hadoop,必须要配置ssh环境, 如果不执行这一步,后面启动hadoop时会出现…

Spring MVC应该怎么学?这份教程带你快速入门,深入剖析源码!

前言: 什么是MVC? MVC(Model-View-Controller):它是一种软件架构设计模式,分为三个部分: Model(模型):业务的数据模型; View(视图)&…

xss-labs/level5

输入 <script>alert(xss)</script> 查看回显 如下所示 能够发现script被恶意替换为scr_ipt 查看源代码 第一个输出点被转义了 所以没有利用价值了 第二个输出点如同刚才所言被进行了关键字的恶意替换操作 那没办法 我们只能继续尝试一下在标签内部构造一个新…

91183-98-1,UDP-N-acetylglucosamine,5′-二磷酸尿嘧啶核苷-N-乙酰半乳糖胺二钠盐

5′-二磷酸尿嘧啶核苷-N-乙酰半乳糖胺二钠盐 英文名称&#xff1a;UDPAG&#xff1b;UDP-GlcNAc&#xff1b;UDP-N-acetylglucosamine&#xff1b;Uridine 5′-diphospho-N-acetylglucosamine sodium salt 其他名称&#xff1a;尿苷-5′-二磷酸-N-乙酰基-葡糖胺钠盐 CAS号&am…

Linux进阶-进程

目录 终端查询进程参数 进程状态 进程状态转换 子进程被Linux内核调入CPU执行的过程 子进程进入睡眠状态 子进程结束 进程控制 pid_t fork(void)&#xff1a;创建子进程 exec()函数族&#xff1a;运行一个可执行文件。 void exit(int status)&#xff1a;结束进程 w…

Illuminate/22圆桌回顾:Web3互操作性的未来现已到来

Illuminate/22 由Moonbeam主办的Illuminate/22于2022年11月10-11日成功举办。为期2天的线上会议聚集了60演讲嘉宾超过40个话题讨论。通过本次会议&#xff0c;来自行业领先的项目及负责人分享了通过互操作性和跨互连合约实现的最新进展。 本次以“Web3互操作性的未来现已到来”…

AI是如何影响全球的安防监控产业

全球AI安防市场现状 人工智能安防监控技术正在以更快的速度传播到更广泛的国家。全球176个国家中&#xff0c;至少有75个国家正在积极将AI技术用于监视目的。其中包括&#xff1a;智慧城市/安全城市平台&#xff08;56个国家&#xff09;&#xff0c;面部识别系统&#xff08;6…

【torch】如何把给定mask按比例选取再次划分mask?

背景 在以torch为基础的很多框架下有一些集成的数据集&#xff0c;数据集往往自带已经划分好的mask。但是如何能够把框架给出的mask再次划分&#xff1f;比如按比例划分出来80%的train mask。 解决 新生成一个每个元素都是0-1分布的与mask2的true位置相同的矩阵&#xff0c;…

xss-labs/level4

首先还是输入我们最熟悉的payload <script>alert(xss)</script> 查看界面回显 发现表单中的尖括号都消失了 说明后台服务器将尖括号删除了 再去查看源代码 通过源代码我们可以知道存在两个有意义的输出点 第一个输出点被转义了 没办法利用了script标签去执行js代…

亲戚小孩月薪17k,而我只有4k+,好慌......

我们总是在悲观与乐观中反复折磨自己&#xff0c;感觉自己一事无成。总是眼高手低&#xff0c;总以为大运会砸到自己&#xff0c;遇到挫折就会感到很沮丧。 大学四年没考到英语六级证书&#xff0c;小学教资考了两次。现在想要考研&#xff0c;但总是觉得来不及&#xff0c;或…

SpringBoot概念、创建和运行

文章目录什么是Spring Boot &#xff1f;为什么要学Spring Boot &#xff1f;Spring Boot 优点Spring Boot 项目创建项目目录介绍和运行约定大于配置什么是Spring Boot &#xff1f;为什么要学Spring Boot &#xff1f; Spring 的诞生是为了简化 Java 程序的开发的&#xff0c…

外汇天眼:外汇市场为何在周末休市?为什么周末行情有波动?

虽然从理论上而言&#xff0c;货币市场从不休市&#xff0c;但您很难见到有人在周日交易。新手甚至会认为&#xff0c;交易活动的停止是因为外汇经纪商周末休息。但如下文所述&#xff0c;实际情况并非如此。 外汇市场中的主要参与者 货币交易主要是为了促进贸易和旅游业。而且…

助推专精特新企业数字化的低代码

近两年&#xff0c;“专精特新”成为行业的热门词。根据工信部的定义&#xff0c;“专精特新”中小企业&#xff0c;是指具有专业化、精细化、特色化、新颖化等特点的企业。它们多专注于产业链上某个环节&#xff0c;主营业务聚焦&#xff0c;同时具有较强大的创新能力、创新活…

PG::Potato

nmap -Pn -p- -T4 --min-rate1000 192.168.171.101 nmap -Pn -p 22,80,2112 -sCV 192.168.171.101 打开80端口未发现可利用的服务 尝试对路径爆破&#xff0c;同时FTP可匿名访问&#xff0c;查看FTP内是否有可用信息 dirb http://192.168.171.101 在FTP中得到了网站源码的…

跑通Intellij Platform Plugin项目

目录需求描述尝试方向1. 用2022.1版本运行2. 用2019.2版本运行结论需求描述 在研究DDD逆向建模支持工具的过程中&#xff0c;需要复现期刊作者的cargo项目&#xff0c;实现C2MD&#xff0c;即代码转UML的功能。虽然按照文章的要求安装DddTool插件&#xff0c;但是不能成功使用…

第三次上机作业 大连理工大学

8.7 某种电子元件的寿命x(单位:小时)服从正态分布。现测得16只元件的寿命如下 是否有理由认为元件的平均寿命显著地大于225小时(a=0.05)? data = read.csv("习题8.7.csv") t.test(data$寿命,mu = 225,alternative = "greater")p值小于0.05,不能认为认…

Python CNN卷积神经网络实例讲解,CNN实战,CNN代码实例,超实用

一、CNN简介 1. 神经网络基础 输入层&#xff08;Input layer&#xff09;&#xff0c;众多神经元&#xff08;Neuron&#xff09;接受大量非线形输入讯息。输入的讯息称为输入向量。 输出层&#xff08;Output layer&#xff09;&#xff0c;讯息在神经元链接中传输、分析、权…