当前位置: 首页 > news >正文

帆软FineBi V6版本经验总结

帆软FineBi V6版本经验总结

BI分析出现背景

​ 现在是一个大数据的时代,每时每刻都有海量的明细数据出现。这时大数据时代用户思维是:1、数据的爆炸式增长,人们比起明细数据,更在意样本的整体特征、相互关系。2、基于明细的“小数据分析”到面向总体的“大数据分析”,是这个时代的大趋势。这个趋势的背后,是看待数据视角的根本变化——层次思维,在这种层次思维条件下,IT人员更关心如何简洁的完整的描述数据。例如:每一条订单所包含的所有信息;但是业务人员更关心问题和答案。例如:日用品下某个子分类的利润的下滑,出现的原因是某个门店折扣出了问题还是人流量出现了问题等等因素。3、简单函数实现复杂分析,比如新客贡献分析、留存分析、复购分析、RFM分析等等。总之:大数据关注的是特征的分析,我关心客户是什么时候来的,但是不关心客户的名字,不关心它是谁。

​ IT人员看待数据的视角:1、IT的思考逻辑是:期待的正确答案,是基于明细汇总、自下而上的聚合视角。2、IT关心的信息是:如何用简洁的架构完整描述业务,即什么时间?哪位客户?在哪个门店?购买了什么东西?以及具体的交易数据。3、工作的重心是:维护数据,保证数据的准确性。

​ 业务人员看待数据的视角:1、业务的思考逻辑是:同样一份数据,不同岗位,不同人的需求截然不同,对应问题所在的层次也不同。例如:公司领导层希望得到的是总销售额这个指标,但是对于具体业务部门,他是希望得到自己所在销售组销售额情况及其在其他各小组直接的排名。2、业务人员关心的信息是:问题和答案,问题通常是一连串问题的组合,寻找答案的过程更像是剥洋葱。3、工作的重心是:探索问题,发现问题。

​ 业务分析是基于业务问题的分析,分析的关键是探索,提问题,找答案。提问题,找答案,才是探索分析、敏捷分析的精髓。注意:业务分析是自上往下、IT分析是自下往上;IT掌握的是数据不是问题,业务掌握的是问题而不是数据。BI数据分析师的职责是:从简单的以前的条形图、饼图,我们希望大家能走向这种更深入的相关性、结构性的分析,这是BI能带给大家的改变。BI并不是要创造一个更好的图形,我们不需要100个图形、200个模板,我们需要的是把简单的问题做的深入。我们每个人从数据分析走向业务分析,业务分析的关键是业务问题,而不是我有很多数据。因此:最好的分析师就是业务经理,最好的业务经理也是分析师。

零售案例展示多维度分析(客户分析)

在这里插入图片描述

	1、客户特征分析:例如销售在增长,但是是否健康呢?这时可以借助RFM模型分析。2、转化率分析:从分析多种业务场景下转化和流失的情况,不仅找出产品潜在问题的位置,还可以定位每个环节流失用户,进而定向营销促进转化。3、相关性分析:当客户购买了“X类的商品时”,他连带购买其他类别商品的数量分别是多少?4、客户复购分析:客户复购分析之不同客户矩阵、在不同复购阶段的客户数量。5、客户留存分析:不同矩阵客户,在之后第1、第2、第3........第N个季度的留存问题。

FineBi简介

​ FineBi是自带ETL工具,降低数据治理的难度。其中FineBi设计器:可以进行表样、数据、展现、打印等报表设计文件中各种元素的设计,是报表设计和报表应用开发、调试、部署的一体化平台。而FineBi报表服务器:是指用在web环境中解析报表的Servlet形式的服务器,用户通过浏览器和报表服务器进行应用交互。

FineBi数据源加载过程

在这里插入图片描述

FineBi自助分析特点

​ 1、以业务需求为方向:根据不同部门的业务需求,对数据进行针对化处理。用于满足不同部门的不同用途,处理各个模块的业务。

​ 2、便捷的数据处理:相较于代码、SQL处理、Excel处理,采用封装好的ETL功能,更容易上手。

​ 3、自由探索分析:相较于固定报表、Excel等,能针对不同数据、不同图表做探索性分析,针对性处理不同事物。

​ 4、数据管控:数据自动化更新,避免重复工作,权限管控。

FineBi操作界面

​ 1、目录:存放着发布了的仪表板大屏。

​ 2、我的分析:存放所有的仪表板,不管是否发布。

​ 3、公共数据:存放所有的数据集。

​ 4、管理系统:配置数据连接,还可以进行BI系统的运维管理。

在这里插入图片描述

FineBi报表开发流程

在这里插入图片描述

新建数据连接

​ 1、新建数据连接:数据连接是将数据库与设计器进行绑定,通过数据连接,报表就可以从数据库中读取、写入数据和修改数据等。

​ 操作步骤:1、将FineBI操作界面切换到(管理系统)操作界面上→2、点击(数据连接→数据连接管理)按钮→3、点击(新建数据连接)按钮→4、在“数据库”中勾选所需数据库如这里的(mysql)数据库,依次填写“主机,端口,数据库名称,用户名,密码,URL”→4、点击顶部的“测试连接”按钮,显示“连接成功”后,点击“确定”按钮,完成新建数据连接操作。

在这里插入图片描述

​ 4、在“数据库”中勾选所需数据库如这里的(mysql)数据库。

在这里插入图片描述

​ 5、在“连接设置”里面输入相应的数据库接口IP(服务器IP),用户名,密码等等→6、点击“测试连接”按钮,如果弹出“测试成功”则说明配置成功,然后点击“保存”按钮并指定保存的位置,然后设置保存的数据源名称。

在这里插入图片描述

新建数据库数据集

​ 2、新建数据集:数据集是通过数据连接从数据库中抽取出来的数据,数据集是一个二维数据表,可以直接在数据集中看到数据表中的字段和数据。

​ 操作步骤:1、将FineBI操作界面切换到(公共数据)操作界面上,选择数据需要存放的文件夹(如这里的Liu→销售部文件夹)。→2、点击(新建数据集)按钮。→3、点击(数据库表(直接将数据库表的数据展示在数据集中)/SQL数据集(通过写SQL语句将数据库表数据显示在数据集中),这里选择数据库表按钮)按钮。

在这里插入图片描述

​ 4、系统会自动跳转到(数据库选表)操作界面,选择上一步(新建数据连接)所创建的(本地mysql),然后点击我们需要分析的数据库表(如这里的dingdan表),然后点击右上角的(确定)按钮,完成数据库选表设置。

在这里插入图片描述

​ 5、系统自动进入(数据预览)界面,点击(更新)按钮即可将数据显示在页面中,点击右上角的(编辑)按钮,则可以对数据集进行编辑,点击右上角的(创建分析主题)按钮,则可以创建仪表板报表,点击左侧的名称还可以对数据集进行重命名。到这,数据库数据集就创建完成了。

在这里插入图片描述

制作报告

​ 3、制作报告:制作报告对数据集数据进行可视化分析创建仪表板,在仪表板中可以利用数据集中的维度和度量字段创建仪表盘,柱形图,趋势图,散点图,饼图等可视化图形进行分析,根据分析的问题进行不断的下钻,深挖交互验证的过程。

门户

​ 5、门户:综合展示整套数据报告,打造属于自己的企业门户。

FineBi添加数据源

FineBi本地上传数据源

​ 本地CSV文件或Excel(.xlsx或.xls)文件上传,如果出现乱码,可以先将本地文件的编码修改为:UTF-8。

​ 步骤:1、将FineBi操作界面切换到”公共数据“操作界面上,选择数据需要存放的文件夹(如这里的Liu—销售部文件夹)。→2、点击“新建数据集”按钮。→3、点击“EXCEL数据集”按钮→4、系统会自动跳转到“创建数据集”操作界面(因为excel等本地文件不需要配置复杂的连接)→5、点击“打开”按钮,然后在本地文件下点选相应的文件,这时系统会自动显示出我们所选文件的所有sheet页→6、勾选我们需要导入的sheet页(默认勾选第一个sheet页)注意:FineBi与其他BI产品不同,他可以勾选所有sheet页,点击“确定”按钮即可。

在这里插入图片描述

在这里插入图片描述

FineBi上星型模式维度建模

​ 星型模式维度建模是由一个事实表和多个维度表构成。步骤:1、借助上面本地上传的数据源,其中的sale表为事实表,其他5个为维度表。所有先将FineBi操作界面切换到”公共数据“操作界面上,选中“sale表”,然后将右侧操作区切换为“关联视图”状态。→2、将4个维度表与sale事实表通过关联字段,找到其对应的关联关系(如这里的1对多关系),将事实表和维度表关联起来形成一个宽表。→3、点击“EXCEL数据集”按钮→4、系统会自动跳转到“创建数据集”操作界面(因为excel等本地文件不需要配置复杂的连接)→5、点击“打开”按钮,然后在本地文件下点选相应的文件,这时系统会自动显示出我们所选文件的所有sheet页→6、勾选我们需要导入的sheet页(默认勾选第一个sheet页)注意:FineBi与其他BI产品不同,他可以勾选所有sheet页,点击“确定”按钮即可。

在这里插入图片描述

​ 因为V6版本后,系统(新建数据集)时没有(自助数据集)这个选项,而上面截图中的关联视图,关联后的数据在V5版本是需要通过(自助数据集)来保存相应的关联后数据的,不然的话,使用的依然是没有关联的数据。而V6版本需要在(我的分析→新建分析主题)上把那5个表进行关联。具体步骤是:1、在创建的分析主题中,点击左上端的(+)按钮,把(公共数据)中的sale,brand,product,salesman,customer5个基础表依次添加进来。→2、点击sale事实表,因为sale事实表与其他4个维度直接都是多对一关联关系,所以用sale事实表左合并关联其他4个维度表,相当于SQL的左连接,设计合并依据字段(如这里sale与brand表的合并依据字段为品牌ID),即SQL中的关联字段(注意:被关联的维度表需要勾选其内部的所有字段,FineBI会自动将关联字段只保存一列,不会出现两列),合并建模后,点击右上端的(保存并更新)按钮,然后sale事实表的图标会出现一个(+)按钮,这便是合并完成的结果。→3、点击带(+)图标的sale事实表右侧的三个点,在弹出的功能中点击(申请发布)按钮将其发布到(公共数据)中相应的节点下,就形成了一个自助数据集。

在这里插入图片描述

导入数据库数据源

​ FineBi新建数据源的时候,会弹出很多类型的“数据库”,选择对应的数据库,可以连接对应数据库数据源。

​ 步骤:1、将FineBi操作界面切换到”管理系统“操作界面上。→2、点击“数据连接”向下箭头,选择“数据连接管理”按钮。→3、点击“新建数据连接”按钮。→4、在“数据库”下选择相应的数据库如MySQL数据库。→5、在“连接设置”里面输入相应的数据库接口IP(服务器IP),用户名,密码等等→6、点击“测试连接”按钮,如果弹出“测试成功”则说明配置成功,然后点击“保存”按钮并指定保存的位置,然后设置保存的数据源名称。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

​ 7、如果出现中文乱码,这时如果 MySQL 数据库编码为 UTF-8 ,需要在数据连接的 URL 后添加参数 ?useUnicode=true&characterEncoding=UTF-8。如果添加参数后仍然出现下图所示的乱码,那么需要将编码改为(默认)。

?useUnicode=true&characterEncoding=UTF-8

在这里插入图片描述

表处理(数据治理)

​ 数据是企业核⼼资产,数据治理能成就企业(特别是银⾏)的未来。它涉及数据质量、数据管理、数据政策、商业过程管理、⻛险管理等多个领域。

脏数据的种类

在这里插入图片描述

​ 脏数据主要问题体现在:1、数据源中用户ID存在不一致;2、数据中个别数据不规范;3、产品类型很多,字段很多,难于梳理;4、存在大量的重复数据;5、关键数据缺失等等。

数据治理原则

在这里插入图片描述

数据治理之数据字段处理

​ 下图所示为需要进行数据治理前的数据表,这个数据表的数据存在三个问题:1、有些字段存在空值;2、有些字段左右存在空格;3、性别字段为数字形式而不是常有的男女类型。

在这里插入图片描述

​ 下图所示为数据治理后的数据结构,其中红色框中的字段是数据治理后的字段。

在这里插入图片描述

销售部表处理示例

​ 步骤:1、将FineBi操作界面切换到(我的分析),然后打开要编辑的(分析主题)。→2、切换到(数据)sheet页栏目下,切换到(字段设置)看数据表的字段情况,跟tableau一样,系统会自动将数据分类成(文本)和(数值)两类→3、点击需要处理的字段就可以对该字段进行编辑:转换为文本,转换为数值,转换为日期,新增公式列,新增汇总列,新增赋值列,条件标签列,其他表添加列,左右合并(SQL关联),上下合并,分组汇总,过滤,排序,字段设置,时间差,获取时间,行转列,列转行,拆分行列,删除重复行等设置。

在这里插入图片描述

字段设置

​ 步骤:1、在(数据)sheet页栏目下,切换到(字段设置)看数据表的字段情况,跟tableau一样,系统会自动将数据分类成(文本)和(数值)两类→2、点击需要处理的字段左侧的图标,弹出(文本,数值,日期),就可以将字段类型实现转换为文本或转换为数值或转换为日期的目的(如这里的产品ID,客户ID等,品牌ID等原本都是数值类型,可以实现转换为文本类型),另外直接双击字段名称,还可以自行修改字段显示名称。→3、任何后期不用的字段,可以放弃勾选该字段前面的√号(如这里的品牌ID1,后期不需要使用,就放弃勾选)。

在这里插入图片描述

过滤

​ 步骤:1、在(数据)sheet页栏目下,点击(过滤)按钮→2、点击(添加条件(且))按钮,这里的且也可以切换为或,系统弹出(请选择字段)按钮,点击(请选择字段)按钮,选择相应的字段(如这里的销售组,日期,销量字段),设置相应的过滤条件,也可以点击(添加公式(且))按钮,然后输入相应的公式完成(过滤)设置(如这里通过四个且过滤条件将几万行的数据变成了只有7条数据)。

在这里插入图片描述

分组汇总(类似于excel透视表)

​ 步骤:1、在(数据)sheet页栏目下,点击(分组汇总)按钮→2、将文本(如销售组)或日期(日期字段,点击该胶囊右侧的向下箭头,可以设置日期类型为年月日/年月/年季/年周,这里设置为年月格式)字段拖拽到(分组)栏目中,将数值(金额和销量)字段拖拽到(汇总)栏目中,系统会自动进行分组聚合操作,如同excel的透视表。如果需要对数值字段进行分区分组(如同tableau的集操作),可以将数值字段(如销量)拖拽到(分组)栏目中,点击该字段胶囊右侧的下拉箭头,在弹出的功能中选择(区间分组)功能,然后进行区间分组设置,如果有特殊值(如负值),则勾选(未分组的值分到其他)按钮。最后结果:通过(分组汇总)设置,原本几万条数据聚合成两百多条数据。

在这里插入图片描述

新增列

​ 步骤:1、在(数据)sheet页栏目下,点击(新增公式列)按钮→2、命名(新增公式列)的名称(如这里的单价),输入计算公式(如这里的金额 / 销量)勾选(字段类型)为数值类型,完成新增列设置。

在这里插入图片描述

排序

​ 步骤:1、在(数据)sheet页栏目下,点击(排序)按钮或点击任意数值字段(如销量)有侧下拉箭头,弹出的功能点击(升序/降序)系统会自己将表中信息进行对应的排序,这样就完成了排序设置。

在这里插入图片描述

左右合并
合并方式对应SQL
并集合并Full join
交集合并inner join
左合并left join
右合并right join

在这里插入图片描述

​ 步骤:具体步骤类似于(FineBi上星型模式维度建模)章节,截图略。

上下合并(类似于tableau并集)

​ 要求:多个表之间字段基本相同,如一个表有10行数据,另一个表有20行数据,上下合并后就变成了一个有30行数据的表,如果某个字段只在其中一个表中有,而其他表没有,则没有的地方为空值,有的地方为实际值。具体步骤类似于(FineBi上星型模式维度建模)章节,步骤截图略。

在这里插入图片描述

人事考勤数据表处理示例

业务背景

​ 假如你是一名人事,老板交代她使用公司的考勤数据查看各个部门的考勤情况。希望通过分析考勤数据了解各个部门的管理和工作情况,从而获得岗位设置、定员定编的可靠建议。但是数据是存放在(打卡信息表)和(人员信息表)两张数据表中(如图)。但是数据存在以下问题,所以需要对数据进行处理和计算。

在这里插入图片描述

​ 目前数据存在以下问题:

​ 1、只有请假的员工会标注考勤状态,有过打卡行为的员工不能区分考勤状态;

​ 2、打卡信息中缺少员工的姓名、年龄、性别等基础信息,这些信息都在(人员信息表)中;

​ 3、数据中只有打卡时间,但是缺少工作时长的数据等等。

​ 4、平均工作时长、不同部门的人均请假次数等等数据,这些也是目前暂时没有的。

处理思路

在这里插入图片描述

导入本地数据

​ 方法一:跟上面的(FineBi本地上传数据源)章节一样,这里略。方法二:可以不需要将本地数据导入(公共数据)中。步骤:1、将FineBi操作界面切换到(我的分析)操作界面上,选择(数据及仪表板)需要存放的文件夹(如这里的Liu→人事部文件夹)。→2、点击(新建分析主题)按钮。

在这里插入图片描述

​ 3、系统自动跳转到(选择数据)操作页面,点击(本地Excel文件→上传数据)按钮。

在这里插入图片描述

​ 4、在本地文件下点选相应的文件,这时系统会自动显示出我们所选文件的所有sheet页→5、勾选我们需要导入的sheet页(默认勾选第一个sheet页)。注意:FineBi与其他BI产品不同,他可以勾选所有sheet页,点击右上角的(确定)按钮即可。

在这里插入图片描述

字段设置

​ 跟上面的(销售部表处理示例)章节相同。步骤:1、在(数据)sheet页栏目下,切换到(字段设置)看数据表的字段情况,跟tableau一样,系统会自动将数据分类成(文本)和(数值)两类→2、点击需要处理的字段左侧的图标,弹出(文本,数值,日期),就可以将字段类型实现转换为文本或转换为数值或转换为日期的目的(如这里的工号原本都是数值类型,可以实现转换为文本类型),另外直接双击字段名称,还可以自行修改字段显示名称。→3、任何后期不用的字段,可以放弃勾选该字段前面的√号。

在这里插入图片描述

过滤出未请假员工

​ 因为(打卡信息表)中的(状态)字段可以区分请假员工和未请假员工,而未请假员工又分为三种情况(全勤,缺勤,迟到),所以,我们需要将(打卡信息表)中的未请假员工过滤出来。

​ 步骤:1、在(数据)sheet页栏目下,点击(过滤)按钮→2、点击(添加条件(且))按钮,这里的且也可以切换为或,系统弹出(请选择字段)按钮,点击(请选择字段)按钮,选择相应的字段(如这里的状态字段),设置相应的过滤条件,完成(过滤)设置。

在这里插入图片描述

分组汇总

​ 利用分组汇总,统计出某一天某个部门的某个员工最早打卡时间及最晚打卡时间,以便后续计划这个员工的上班时长。

​ 步骤:1、在(数据)sheet页栏目下,点击(分组汇总)按钮→2、将(工号,部门,日期)三个字段添加到(分组)栏目中,连续拖拽两次(打卡时间)到(汇总)栏目中。点击第一个(打卡时间)胶囊右侧下拉箭头,在弹出的功能框中选择(最早时间),点击第二个(打卡时间)胶囊右侧下拉箭头,选择(最晚时间),为了方便查看,也可以分别对这两个胶囊重命名为(最早时间)和(最晚时间),完成(分组汇总)设置。

在这里插入图片描述

新增公式列

​ 有了上面的最早打卡时间和最晚打卡时间,我们还需要借助新增公式列来判断员工是否迟到,先计算每天的标准上班时间,大部分公司是早上九点上班,就用早上九点上班为例。

​ 步骤:1、在(数据)sheet页栏目下,点击(新增公式列)按钮→2、在弹出的(新增公式列)编辑页面中,命名为(标准上班时间),如同tableau计算字段一样,输入下列公式,获取(标准上班时间)计算字段。

TODATE(CONCATENATE(LEFT(${日期},10)," ","09:00:00"))
/*left()函数:截取日期字段的前10个字符,CONCATENATE()函数:将两个或多个字符串进行拼接成一个字符串,TODATE()函数:将字符串转换为时间类型。*/

在这里插入图片描述

​ 有了上面的最早打卡时间和最晚打卡时间和标准上班时间,我们可以通过新增公式列分析员工的考勤情况(全勤,缺勤,迟到)三种,设置打卡间隔 <= 7小时为缺勤,最早打卡时间 > 标准上班时间为迟到。

​ 步骤:1、在(数据)sheet页栏目下,点击(新增公式列)按钮→2、在弹出的(新增公式列)编辑页面中,命名为(考勤结果),输入下列公式,获取(考勤结果)计算字段。

IF(HOUR(${最晚时间})-HOUR(${最早时间})<=7,"缺勤",IF(${最早时间}>${标准上班时间},"迟到","全勤"))

在这里插入图片描述

保存为不请假人考勤数据表

​ 因为通过上面的(过滤)步骤章节,本表只剩下没有请假的员工考勤信息,但是我们进行考勤分析的时候是需要分析所有人不管是否请假的考勤信息,为了进一步合并请假人员考勤数据,将该表保持为(不请假人考勤数据表)。

​ 步骤:直接点击右上角的(保存并更新)按钮,然后点击左侧(打卡信息表)右侧的三个小点,弹出的功能框中选择(重命名)未(不请假人考勤数据表),完成设置。

在这里插入图片描述

重新导入打卡信息表

​ 跟上面的(导入本地数据)步骤章节类似。步骤:在(数据)sheet页栏目下,点击左上角(数据)右侧(+)按钮,重新导入打卡信息表。

在这里插入图片描述

过滤出请假员工

​ 首先,跟上面的(字段设置)章节一样,将(工号)字段转换为(文本)类型,步骤略。然后过滤出各种类型的请假员工。步骤同上面(过滤出未请假员工)步骤章节,略。

分组汇总

​ 因为需要跟上面保存的(不请假人考勤数据表)上下合并,这就要求两个表的表结构要保持一样,所以我们借助分组汇总对请假人员进行操作。

​ 步骤:1、在(数据)sheet页栏目下,点击(分组汇总)按钮→2、将(工号,部门,日期,状态)四个字段添加到(分组)栏目中,连续拖拽两次(打卡时间)到(汇总)栏目中。点击第一个(打卡时间)胶囊右侧下拉箭头,在弹出的功能框中选择(最早时间),点击第二个(打卡时间)胶囊右侧下拉箭头,选择(最晚时间),为了方便查看,也可以分别对这两个胶囊重命名为(最早时间)和(最晚时间),完成(分组汇总)设置。

在这里插入图片描述

上下合并

​ 步骤:1、在(数据)sheet页栏目下,点击(上下合并)按钮→2、在弹出的(上下合并—选择表)中选择(不请假人考勤数据表),然后在(编辑合并表)页面中,对两表字段进行一一匹配。

在这里插入图片描述

左右合并

​ 步骤:1、在(数据)sheet页栏目下,点击(上下合并)按钮→2、在弹出的(左右合并—选字段)中选择(人员信息表→勾选所有字段),然后在(编辑合并表)页面中,在选择(合并方式)中保持默认为(左合并),两表直接的(合并依据)也是保持默认的(工号)字段。

在这里插入图片描述

时间差算工时(明细计算)

​ 我们还需要计算员工每天的工作时长及年龄。

​ 步骤:1、在(数据)sheet页栏目下,点击(更多→时间差)按钮→2、在(新增时间差列)编辑页面中,设置列名为(工作时长),设置时间差为(最晚时间) - (最早时间),设置单位为(时),完成工作时长设置。

在这里插入图片描述

新增公式列算年龄(明细计划)

​ 因为员工身份证有出生年月,所以可以借助身份证计算年龄

​ 步骤:1、在(数据)sheet页栏目下,点击(新增公式列)按钮→2、在弹出的(新增公式列)编辑页面中,命名为(年龄),如同tableau计算字段一样,输入下列公式,获取(年龄)计算字段。

YEAR()-TOINTEGER(MID(${身份证号码},7,4))
/*mid()函数:截取身份证字段从第7位开始的4个字符,TOINTEGER()函数:将字符串转换为整型格式*/

在这里插入图片描述

保存数据处理后表

​ 最后:点击右上角的(保存并更新)按钮,保存数据处理后的表格。最好保持的《打卡信息表》就是我们后续需要使用到的“人事考勤数据表”。到这,人事考勤数据表处理完毕。

新增字段:如何进行信息重构

​ 大数据关注的是特征的分析,我关心客户是什么时候来的,但是不关心客户的名字,不关心它是谁。除了已有的维度,想做进一步的分析,就必须要人为创造字段,这就是(新增字段),其中特征分析的字段(很多时候就需要 DEF 函数了)

​ 在FineBI中创建计算字段常用的有三种方式:1、明细级别计算(数据源行级别计算,也就是对明细数据源的每一行进行计算);2、聚合计算(实际相当于SQL的group by汇总求和计算,推荐在开发仪表板报表的阶段,进行聚合计算,而不是数据处理阶段);3、组件快速计算。

添加计算字段

​ 针对数据集中已有的字段来添加计算字段,类似于tableau的新建计算字段。可以在数据集处理过程中新建计算列,也可以在制作报告中添加计算字段。总体类似于tableau新建计算字段,聚合后的计算列不能再进行聚合操作,在数据集上新建计算列,他的作用域是运用了该数据集的所有报告,而报告中的新建计算列的作用域仅限于当前报告,另外数据集新建计算列是不能聚合的,而报告中新建计算列是可以聚合的。

sum(IF col['地区'] == '东北' then col['利润'] end) /
sum(IF col['地区'] == '东北' then col['销售额'] end) 
//计算东北利润率,tableau是“=”号,这里是“==”,其他没有多大区别
if sum(col['销售额']) ==0 then 0 else sum(col['利润']) / sum(col['销售额']) end
//计算东北利润率,tableau是“=”号,这里是“==”,避免除数为0
聚合函数
函数定义
SUM_AGG对指定维度(拖入分析栏)数据进行汇总求和
AVG_AGG根据当前分析维度,返回指标字段的汇总平均值,生成结果为一数据列,行数与当前分析维度行数一致。
COUNT_AGG对指定维度(拖入分析栏)数据进行计数(非空的单元格个数)
COUNTD_AGG对指定维度(拖入分析栏)数据进行去重计数(非空的单元格去重个数)
MIN_AGG根据当前分析维度,返回指标字段的最小值,生成结果为一数据列,行数与当前分析维度行数一致。
MAX_AGG根据当前分析维度,返回指标字段的最大值,生成结果为一数据列,行数与当前分析维度行数一致。
MEDIAN_AGG根据当前分析维度,返回指标字段的中位数,生成结果为一数据列,行数与当前分析维度行数一致。
VAR_AGG根据当前分析维度,动态返回指标字段的方差,生成结果为一动态数据列,行数与当前分析维度行数一致。
STDEV_AGG根据当前分析维度,返回指标字段的标准差,生成结果为一数据列,行数与当前分析维度行数一致。
示例

​ 以上面数据处理好后的《打卡信息表》为例,步骤:1、切换到(组件)sheet页中,点击左侧数据源上个点按钮,弹出的功能框中,点击(添加计算字段)按钮。

在这里插入图片描述

​ 计算平均工作时长:2、 在(添加计算字段)编辑页面中,输入字段名称为(平均工作时长),然后输入下列公式,完成(平均工作时长)计算字段的创建。

AVG_AGG(${工作时长})

在这里插入图片描述

​ 计算总人数:2、 在(添加计算字段)编辑页面中,输入字段名称为(总人数),然后输入下列公式,完成(总人数)计算字段的创建。

COUNTD_AGG(${工号})

​ 计算每人平均工作时长:2、 在(添加计算字段)编辑页面中,输入字段名称为(每人平均工作时长),然后输入下列公式,完成(每人平均工作时长)计算字段的创建。

SUM_AGG(${工作时长}) / COUNTD_AGG(${工号})

在这里插入图片描述

​ 计算迟到人数:2、 在(添加计算字段)编辑页面中,输入字段名称为(迟到人数),然后输入下列公式,完成(迟到人数)计算字段的创建。

COUNTD_AGG(IF(${状态}="迟到",${工号},null))

在这里插入图片描述

快速计算

​ 快速计算是在开发可视化图表(如饼图,分组表等)时,对制作可视化图表所使用的度量字段进行快速计算。

​ 用分组表举例:1、如图所示,新建一个组件,在该组件制作过程中,将(性别)和(部门)两个维度字段拖拽到图表展示区的(维度)栏目中,将(迟到人数)拖拽到(指标)栏目中,系统自动生成一个分组表。→2、再拖拽一次(迟到人数)字段到(指标)栏目中,点击该胶囊右侧下拉箭头,点击(快速计算→组内累计值),分别计算出各部门男女迟到人数的累计值。

在这里插入图片描述

​ 3、再拖拽一次(迟到人数)字段到(指标)栏目中,点击该胶囊右侧下拉箭头,点击(快速计算→组内所有值→求和),分别计算出男女迟到人数的总和。

在这里插入图片描述

​ 4、再拖拽一次(迟到人数)字段到(指标)栏目中,点击该胶囊右侧下拉箭头,点击(快速计算→所有值→求和),计算出迟到人数的总和。

在这里插入图片描述

​ 5、再拖拽一次(迟到人数)字段到(指标)栏目中,点击该胶囊右侧下拉箭头,点击(快速计算→组内占比),计算出各部门迟到人数在男女两个分组中各自的占比。

在这里插入图片描述

​ 6、再拖拽一次(迟到人数)字段到(指标)栏目中,点击该胶囊右侧下拉箭头,点击(快速计算→占比),计算出各部门迟到人数在总迟到人数中的占比。

在这里插入图片描述

多粒度表达式:DEF()函数

数据粒度含义

​ 如果没有 DEF 函数,一个 BI 查询的数据粒度是完全固定的。

​ 细粒度表示数据的细化程度:例如钻取,就是获取细粒度越来越高,越来越细的数据。例如销售额从省份—城市—客户进行逐层钻取,定位到合同额异常的客户订单。

​ 例如,老板想要知道各省份每月的合同额。若是你给他总的合同额数据,这个数据对他来说就太粗了;若给详细的每个订单的合同额数据,这个数据又太明细了。这里的「太粗」和「太细」就是指的数据的细粒度。而细粒度和聚合度是相反的两个概念:细粒度越低,则聚合度就越高。

在这里插入图片描述

​ 复杂分析场景(高阶计算)往往需要同时使用不同层次的数据进行分析,如果用多个图表组合表达又很难体现出数据特征,分析不够直观。此时就需要DEF来实现,在同一图表中将图表分析和DEF分析结合,实现跨层次的分析。图示三角形的不同细粒度数据,在不同的数据层次。

在这里插入图片描述

tableau中LOD函数的语法
//tableau中LOD函数的语法
fixed1 = { FIXED [月份],[类别]:SUM([数量])}
fixed2 = { FIXED [月份],[类别],[产品]:SUM([数量])}
fixed3 = { FIXED [月份]:SUM([数量])}exclude1 = { EXCLUDE [月份],[类别]:SUM([数量])}
exclude2 = { EXCLUDE  [月份],[类别],[产品]:SUM([数量])}
exclude3 = { EXCLUDE  [月份]:SUM([数量])}

在这里插入图片描述

永洪中LOD函数的语法
//永洪中LOD函数的语法
fixed(col['地区']::sum(col['销售额']))
exclude(col['省'],col['城市']::sum(col['销售额']))
include(col['城市']::sum(col['销售额']))

在这里插入图片描述

​ 帆软DEF()函数有点类似于tableau和永洪的LOD函数,但是又不同,他是FineBI主推的一种功能。帆软DEF()函数包含1、tableau的15大详细级别表达式LOD复刻;2、tableau的10大表计算复刻;3、Lookup跨行跨列取数等功能。

​ DEF()函数的功能是:输出任意层级任意复杂度的计算指标。DEF()函数出现的背景是:大数据时代用户思维的转变。

​ DEF()函数含义:DEF()类函数用户修改或控制计算的详细级别(粒度),明确设置指标计算的粒度。使用位置:编辑数据、组件添加计算字段。

​ DEF()函数结构:DEF(参数1,参数2,参数3),参数1是聚合指标,参数2是分组维度字段,参数3是添加的过滤条件。类似于下面的SQL语句。

select (参数1) from table group by (参数2) where (参数3)
DEF()函数实现的复杂场景

​ 1、复杂场景分析:按月分组累计汇总用户的访问文档篇数,若用户1、2月都访问了文档A,只算1篇。2、跨行计算:获取字段某行的值,进行跨行计算,求转化率。3、数据分析结果控制:在组件内,未展示的字段也能参与占比分析等等。4、跨粒度计算:在一个客户订单的明细中,展示他的最早购买日期。5、实现快速计算,可对结果再运算:DEF函数功能强大,还能实现快速计算功能,例如求同环比、占比、排名、累计值、所有值。

DEF()函数类型
//帆软的DEF()函数类型
def(指标, [维度1,维度2], [过滤条件1,过滤条件2]): 以函数中维度作为分组
def-add(指标, [维度1,维度2], [过滤条件1,过滤条件2]):以分析区域维度+函数中维度作为分组
def-sub(指标, [维度1,维度2], [过滤条件1,过滤条件2]):以分析区域维度-函数中维度作为分组
DEF()函数示例

​ 注意:def(指标, [维度1,维度2,…], [过滤条件1,过滤条件2,…]),以函数中维度作为分组。该函数的计算结果,不受制作可视化图表时已拖入的维度这些外部条件影响,只受括号里面的条件因素影响。

场景公式描述
想知道每个客户在平台下了多少单def(countd_agg(订单编号),[客户ID])指定维度:客户ID;聚合指标:countd_agg(订单编号);计数每个客户ID对应多少个不同的订单编号
想知道平台总的销售额def(sum_agg(销售额))指定维度:无;聚合指标:sum_agg(销售额);由于没有指定维度,所以该公式求总销售额
想知道每个省份的销售额def(sum_agg(销售额),[省份])指定维度:省份;聚合指标:sum_agg(销售额);计算每个省份的销售总额
想知道每个省份下不同产品的销售额def(sum_agg(销售额),[省份,产品])指定维度:省份和产品;聚合指标:sum_agg(销售额);计算每个省份下每个产品的销售额
想知道2013年份的每个省份的销售额def(sum_agg(销售额),[省份],[年份=2013])指定维度:省份;聚合指标:sum_agg(销售额);过滤条件:年份=2013;计算 2013 年,每个省份的销售总额
示例一:DEF()函数细粒度管控
DEF(SUM_AGG(${销售额}))
//01总销售额:计算原数据中所有销售额的总和
DEF(SUM_AGG(${销售额}),${地区})
//02各大区销售额:分别计算各个大区中所有年份(此为四年)的销售额总和
DEF(SUM_AGG(${销售额}),${地区},${年份}=2021)
//0321年各大区销售额:分别计算各个大区在2021年的销售额

在这里插入图片描述

示例2:DEF()函数算TOPN占比

​ 通常在制作TOPN示例时,往往会有求TOPN在总体中占比的业务需求,这时,如果我们仅仅借助FineBI自带的(快速计算→占比)来计算时,如此处的销售额,求出的结果是TOP1至TOP6各省份的销售额分别占销售额排行前6的6个省份销售额之和的占比,而不是占全国34个省级单位销售额之和的占比。如果要实现这个功能,就需要借助DEF()函数来计算,创建如下计算字段:

DEF(SUM_AGG(${销售额}),${省份}) / DEF(SUM_AGG(${销售额}))
//04各省销售额占比:计算各个省份中所有年份的销售额之和 / 原数据中所有销售额的总和
DEF(SUM_AGG(${销售额}),${省份})
//05各省份销售额:分别计算各个省份中所有年份(此为四年)的销售额总和

​ 注意:这里算TOPN时,不是将(省份)字段拖拽到(结构过滤器)中,而是点击图形展示区中(维度→省份胶囊→下拉箭头→过滤→销售额→最大的N个→固定值→N=6)。

在这里插入图片描述

示例3:DEF()函数算漏斗图转化率

​ 先借助DEF()函数创建如下(06漏斗转化率)计算字段:

SUM_AGG(${销售额}) / SUM_AGG(DEF(SUM_AGG(${销售额}),[],${发货方式}="标准级"))

在这里插入图片描述

DEF_ADD()函数示例

​ 注意:DEF_ADD(指标, [维度1,维度2], [过滤条件1,过滤条件2]):以分析区域维度(即制作可视化图表时所使用到的维度)+ 函数中维度(即函数中括号内的维度)作为分组。该函数的计算结果,是受到制作可视化图表时已拖入的维度这些外部条件因素和括号里面的条件因素共同的叠加影响。

示例一:DEF_ADD()函数与DEF()对比

​ 相对于 DEF() 来说,DEF_ADD() 的优势在于:它可以通过拖拽灵活调整维度,从而快速的获得不同的分析结果。

​ 示例:将之前创建的(01总销售额)和(02各大区销售额)复制一份,对复制生成的计算字段中,将DEF改为DEF_ADD,如下所示:

DEF(SUM_AGG(${销售额}))
//01总销售额:计算原数据中所有销售额的总和
DEF(SUM_AGG(${销售额}),${地区})
//02各大区销售额:分别计算各个大区中所有年份(此为四年)的销售额总和
DEF_ADD(SUM_AGG(${销售额}))
//01总销售额_ADD:利用制作可视化图表时所使用的维度作为分组因素。
DEF_ADD(SUM_AGG(${销售额}),${地区})
//02各大区销售额_ADD:利用制作可视化图表时所使用的维度和括号中的(地区)维度叠加起来作为分组因素。

在这里插入图片描述

DEF_SUB()函数示例

​ 注意:DEF_SUB(指标, [维度1,维度2], [过滤条件1,过滤条件2]):以分析区域维度(即制作可视化图表时所使用到的维度) - 函数中维度(即函数中括号内的维度)作为分组。该函数的计算结果,是受到制作可视化图表时已拖入的维度这些外部条件因素排除括号里面的条件因素的影响。

示例一:DEF_SUB()函数计算逻辑

​ 示例:创建计算字段(08每个年份平均销售额),计算出各类别产品在每个年份的平均销售额,如下所示:

DEF_SUB(SUM_AGG(${销售额}),${类别}) / DEF(COUNTD_AGG(${类别}))

在这里插入图片描述

EARLIER()函数示例

​ 注意:EARLIER(参数):用于获取(当前行)和(参数字段列)交叉的单元格的值;EARLIER (参数):获取当前行的值,只能用于 DEF 类函数中,一般用于行间过滤计算。注意事项:EARLIER(参数) 的参数为单个字段,不支持常量作为参数,所以括号里面必定是字段而不是常量。

DEF()函数场景应用之客户特征分析

​ 创建(堆积柱形图),然后借助创建的(首次购买日期)计算字段,获取哪个年份吸引的用户最多?维护的最好?对比不同首次购买年份的客户在每年的销售额贡献度。先创建如下(09客户首次购买日期)计算字段,注意:不同于永洪和tableau直接MIN()函数可以计算最小时间,这里计算最小时间时:1、先需要借助DATETONUMBER(date)函数,获取返回自1970年1月1日00:00:00GMT经过的毫秒数;2、然后借助MIN_AGG(array)函数,根据当前分析维度,返回字段的最小值,生成结果为一数据列,行数与当前分析维度行数一致;3、借助DEF()函数获取每个客户的最小购买时间;4、最后借助TODATE()函数,将各种日期形式的参数转换为日期类型,由此获得日期格式的最小日期。

TODATE(DEF(MIN_AGG(DATETONUMBER(${订单时间})),${客户姓名}))

​ 由图可知:2018年获取的客户最多,且忠诚度最高,维护最好。

在这里插入图片描述

DEF()函数场景应用之客户特征分析RFM模型

​ 一、先创建如下(10客户最后一次购买日期)计算字段,注意:不同于永洪和tableau直接MAX()函数可以计算最小时间,这里计算最小时间时:1、先需要借助DATETONUMBER(date)函数,获取返回自1970年1月1日00:00:00GMT经过的毫秒数;2、然后借助MAX_AGG(array)函数,根据当前分析维度,返回字段的最大值,生成结果为一数据列,行数与当前分析维度行数一致;3、借助DEF()函数获取每个客户的最大购买时间;4、最后借助TODATE()函数,将各种日期形式的参数转换为日期类型,由此获得日期格式的最大即最后一个购买日期。

TODATE(DEF(MAX_AGG(DATETONUMBER(${订单时间})),${客户姓名}))

​ 二、再创建如下(11R-距离最后一次购买时间间隔)计算字段,这里需要借助DATESUBDATE()函数,DATESUBDATE(date1,date2,op):返回两个日期之间的时间差;其中op表示返回的时间单位:“s"或者"S”,以秒为单位。“m"或者"M”,以分钟为单位。“h"或者"H”,以小时为单位。“d"或者"D”,以天为单位。“w"或者"W”,以周为单位。。

DATESUBDATE(TODAY(),${10客户最后一次购买日期},"d")

​ 三、再创建如下(12M-每个客户的购买金额)计算字段,计算每个客户的购买金额

DEF(SUM_AGG(${销售额}),${客户姓名})

​ 四、再创建如下(13F-购买频次)计算字段,计算每个客户的购买频次

DEF(COUNTD_AGG(${订单ID}),${客户姓名})

​ 五、再创建如下(14R-平均值)计算字段

DEF(AVG_AGG(${11R-距离最后一次购买时间间隔}))

​ 六、再创建如下(15M-平均值)计算字段

DEF(AVG_AGG(${12M-每个客户的购买金额}))

​ 七、再创建如下(16F-平均值)计算字段

DEF(AVG_AGG(${13F-购买频次}))

​ 八、再创建如下(17R评价)计算字段

IF(${11R-距离最后一次购买时间间隔}>${14R-平均值},0,1)

​ 九、再创建如下(18F评价)计算字段

IF(${13F-购买频次}>${16F-平均值},1,0)

​ 十、再创建如下(19M评价)计算字段

IF(${12M-每个客户的购买金额}>${15M-平均值},1,0)

​ 十一、再创建如下(20客户RFM特征)计算字段,借助CONCATENATE(text1,text2,……)函数,将数个字符串合并成一个字符串。如CONCATENATE(“1”,“2”)等于12。

CONCATENATE(${17R评价},${18F评价},${19M评价})

​ 十二、如图所示:制作一个分组表,这样一个客户RFM特征分析模型就设置完成了。至于图形中(重要价值客户)内容,则是通过自定义分组来设置的,设置方法:点击图形展示区(20客户RFM特征)胶囊右侧的下拉箭头,弹出的功能中点击(自定义分组),弹出的功能框中,点击(添加分组)按钮,设置111的分组名称为(重要价值客户)。

在这里插入图片描述

​ 十三、如图所示:利用FineBI自带的(多系列柱形图)制作一个条形图。步骤:1、首先点击左侧数据中的维度字段(客户姓名)右侧下拉箭头,弹出的功能中点击(复制)按钮,系统自动生成一个(客户姓名1)的维度字段;→2、点击该维度字段右侧下拉箭头,弹出的功能中点击(转化为指标)按钮,系统自动将其转换为(客户姓名1(去重计数))的度量字段。→3、将(客户姓名1(去重计数))的度量字段拖拽到(横轴)区,将(20客户RFM特征)字段拖拽到(纵轴)区,这样一个客户RFM特征各自占比分层的模型就设置完成了。

在这里插入图片描述

DEF()函数+参数场景应用之相关性分析

​ 复杂场景分析:我们经常想将一个品类的值,与其他所有品类做对比,类似于经典案例《啤酒与尿布》。比如说想对比(儿童服装)对比其他品类的产品的销售额的差额是多少,怎么计算呢?

​ 步骤:1、如同上述(添加计算字段)的方法一样,点击左侧数据字段右侧的三个点图标,弹出的功能框中点击(添加参数)按钮,在弹出的(新建参数)弹框中,参数名称命名为(选定子类别参数),参数类型切换为(文本),然后(确定)即可完成参数的设置。

在这里插入图片描述

​ 二、再创建如下(20选定子类别的销售额)计算字段,这里需要借助上面创建的(选定子类别参数)当作动态过滤条件。

DEF(SUM_AGG(${销售额}),[],${子类别}=${选定子类别参数})

在这里插入图片描述

​ 三、再创建如下(21其他子类与选定子类销售额之差)计算字段,计算其他子类与选定子类销售额之差。

DEF(SUM_AGG(${销售额}),${子类别}) - ${20选定子类别的销售额}

​ 四、借助FineBI自带的(多系列柱形图)创建一个条形图。具体步骤是:1、直接在FineBi设计器中点击(图表类型→多系列柱形图)→2、分别将维度字段(子类别)拖拽到(纵轴)区,将度量字段(销售额和21其他子类与选定子类销售额之差)拖拽到(横轴)区,系统会自动在(数据区)生成一个名字叫(指标名称)的跨表字段,并且在图形展示区自动生成一个柱子颜色一模一样的双柱条形图。→3、为了让两个度量呈现不同的颜色,将(指标名称)字段拖拽到(图形属性→全部→颜色中),那样就变成了两个度量柱子颜色不一样的双柱条形图。

在这里插入图片描述

​ 五、如同tableau一样制作一个仪表板,并将第四步制作的条形图拖拽到仪表板中。然后从仪表板左上端拖拽一个(过滤组件→文本下拉)到仪表板中。再然后对(文本下拉)过滤组件进行设置,勾选(绑定参数→选定子类别参数),这样就完成了参数控制图表的动态过滤设置。

在这里插入图片描述

​ 六、为了让参数能够动态控制仪表板中的可视化图表,我们需要让(选定子类别参数)绑定(子类别)字段的内容,但是切记不能直接绑定本数据源的(子类别)字段内容。可以制作一个组件(默认是分组表),直接将(子类别)字段拖拽到(维度)区。类似观远BI直接将制作可视化图表生成的卡片重新当一个独立的数据源进行二次开发一样,直接点击仪表板左上端的(导出Excel)按钮将该组件信息导入,以便二次利用该数据。

在这里插入图片描述

​ 七、切换到(数据)栏目中,将第五步导出存放在本地的(组件)excel数据源重新上传。

在这里插入图片描述

​ 八、切换为(仪表板)栏目中,编辑第五步使用的(文本下拉)过滤组件,勾选为(全部字段→选择组件→子类别),在子类别下拉框中随便动态选择一个内容即可。

在这里插入图片描述

​ 九、回到仪表板的图形展示区,切换(文本下拉)筛选器的内容,可视化图形跟着一起动态变化,这样DEF()函数+参数进行相关性分析的场景就设置展示完成了。

在这里插入图片描述

DEF()函数场景应用之用户购买频次分析

​ 1、复杂场景分析:一个订单,想要知道购买1次,2次,3次,4次…的人数分别是多少?这时也需要DEF()函数,先创建如下(13F-购买频次)计算字段,计算每个客户的购买频次的计算字段。

DEF(COUNTD_AGG(${订单ID}),${客户姓名})

​ 2、复制上面的(13F-购买频次)计算字段,并将复制所得的(13F-购买频次1)转化为维度字段。然后制作如下一个可视化分组表。

在这里插入图片描述

​ 3、点击上述可视化分组表(维度)区的(13F-购买频次1)胶囊右侧下拉箭头,弹出的信息中点击(相同值为一组),系统自动将分组表进行重新分组。

在这里插入图片描述

​ 4、直接点击(图形类型→分区柱形图),系统自动将分组表切换为柱形图,然后将(客户姓名1(去重计数)字段拖拽到(图形属性→标签)上,这样就可以清楚得到用户购买频次分布可视化柱图了。

在这里插入图片描述

常规可视化图表组件

注意:打开FineBI组件设计(类似于tableau的工作簿),第一个默认的可视化图表就是(分组表)。另外所有可视化图表,像表格组件列数过多或可视化柱图,线图等X轴内容太多,会出现带左右滚动条的情况,如果要消除滚动条,可以切换到(组件样式→自适应显示)中,将默认的(标准适应)修改为(整体适应)。

线图和面积图都是用于展示指标趋势变化(一般是某些度量随时间的变化,最好线条数不超过4条)情况,面积图除了展示趋势变化,同时展示结构占比情况。柱形图和环形柱状图和条形图都是展示结构占比变化情况的,不同部分的比较和关系。饼图和圆环图主要用来体验结构成分占比情况(通常当作辅助图形放在可视化大屏中)。交叉表通常是可视化仪表板不可缺少的部分,通过交叉表的指标数值大小可以一眼看出异常数据出现的时间及所属维度类别等等。散点图是大屏展示数据分析的一个重要图表,通常是用于做数据探索,因为散点图可以纳入两个不同度量,一起看不同维度在两个不同度量的分布,了解这两个度量的相关性(正相关,负相关还是不符合相关性等等),散点图还可以进行四象限分析,如同RFM模型一样。漏斗图是互联网公司常用的图,通常用来展示客户留存转化率的特点,看每一个步骤的客户留存变化情况;对比漏斗图常用于对比两种不同渠道转化率变化情况;通常建议漏斗图不要超过五层,如果超过五层,先把几个大的方面拿出来,如果这里面中间有流失比较大,再比这中间的因素拿出来分析**。雷达图,玫瑰图(玫瑰图是饼图的一种变种,饼图是用块的角度区分占比的大小,而玫瑰图是用块的面积大小区分占比的大小),矩阵树图,指标拆解树(也叫树图,有分支,有叶子,像高中生物学遗传族谱图)**都是用来表示一个维度中几种类型指标数据的对比,也可以用来看占比的大小。词云图和气泡图是根据不同词出现的大小来了解用户对某一事情偏好的情况。桑基图是互联网公司常用图,用于表示一组值到另一组值的流动情况,两端是不同时间点维度的数据情况,追踪上一个月不同维度占比的用户到下一个月处于什么样占比的情况,如上个月处于RFM模型的忠诚用户下个月流向了RFM模型中的哪里。来源去向图也是互联网公司常用图,用于展示从中间页面的上一个页面到下一个页面的流动情况。热点地图可以展示分类数据,利用强烈的色彩对照感来表现地理区域或数据列表的情况。

使用图表的目的适合的图表类型
比较柱形图、对比柱形图、分组柱形图、堆积柱形图、分区折线图、雷达图、词云、聚合气泡图、玫瑰图
占比饼图、矩形块图、百分比堆积柱形图、多层饼图、仪表盘
趋势折线图、范围面积图、面积图、散点图、瀑布图、桑基图
分布散点图、地图、热力区域图、漏斗图、箱型图

表格组件

注意:设置分页的原因:1、人肉眼无法一次看完大批量数据;2、从报表优化角度说,设置分页可以提升效率,降低全局筛选。3个表格组件(分组表,交叉表,明细表)都是默认固定表头的,而且都是默认分页显示的,无论翻转到哪一页,表头都是固定且存在的。无论是分组表还是交叉表都是默认会冻结表格维度(即左右滚动条拖动,维度列处于冻结状态),且都会默认显示其行合计,另外交叉表还默认显示其列合计。明细表展示的是明细信息,所以明细表跟分组和交叉表不一样,是没有小计合计的,但是明细表会默认冻结第一列。

分组表

​ 分组表是将报表中的数据按组显示,即将数据列中相同项合并为一组显示,FineBI打开后默认的可视化图表组件就是分组表,制作的表格默认为分组表,当分组表的字段过多时,会自动转换为清单表。

制作步骤

​ 类似于tableau制作分组表。1、直接在FineBi设计器中点击(图表类型→分组表),然后分别将维度字段(如:日期(点击维度栏目上的日期胶囊,将日期转换为年月形式),销售组,销售员名称)拖拽到(维度)栏目中,将度量字段(金额,销量,单价)拖拽到(指标)栏目中,系统自动生成一个分组表,但是这个分组表会根据第一个分组字段(这里是日期)进行合并起来,默认的总(合计)值显示在报表底部。

在这里插入图片描述

展开分组

​ 2、切换到(组件样式→格式)栏目下,默认分页行数20,默认冻结表格维度(即默认表头是固定的且显示在分组表左侧的维度也是固定,当表格列数比较多数,拖到滚动条,维度列依然处于冻结状态),无论翻转到第几页(如截图中第3页),表头一直存在,且都处于冻结状态,设置勾选(展开行表头节点)即可以得到一个所有分组都展开的分组表。

在这里插入图片描述

字体及同环比与数据条修改

​ 1、切换到(组件样式→表格字体)栏目下,默认(样式)为(自动)形式,切换为(自定义)形式,可以设置表头,表身(分别为维度和度量)的字体大小及其对齐方式→2、点击(维度)或(指标)栏目下各字段胶囊右侧的下拉箭头,对于维度字段,可以设置(显示别名,自定义分组,排序,过滤,切换显示类型为文本或图片形式)等等,对于度量字段,可以设置(汇总方式,二次计算(轻易计算同环比,占比,排名等),过滤,开启数据条(类似excel数据中含条形图),数值格式,显示别名,备注等等)。

在这里插入图片描述

图形或颜色样式

​ 类似于excel条件格式下的图标集功能,1、切换到(表格属性)栏目下,点击维度字段下拉箭头,弹出的功能可以修改该字段对应的(颜色和形状),点击度量字段(如这里的环比)下拉箭头,和维度字段不同的是需要将一个度量字段(如环比)拖拽到这里的(颜色或形状)中,点击(形状)右侧的小齿轮图标,对形状进行设置。

在这里插入图片描述

小计设置

​ 1、切换到(组件样式→合计行)栏目下,设置勾选(显示组内合计行)按钮,然后勾选所需进行小计的那个大类维度字段(如这里的销售组)字段,系统会自动根据所勾选的维度生成相应的小计,至于这里根据二次计算所得到的字段(排序,环期,环比)三个字段都会自动计算相应的小计状况。

在这里插入图片描述

分组表风格修改

​ 1、切换到(组件样式→风格)栏目下,默认风格就是上面的截图类型(展示类型为多列展示),切换其风格类型为(列表展示)则出现下面所示每个单元格都有内容的分组表。

在这里插入图片描述

交叉表

​ **交叉表:行列都有维度。**制作步骤:1、直接在FineBi设计器中点击(图表类型→交叉表),然后分别将维度字段(如:销售组)拖拽到(行维度)栏目中,将维度字段(如:渠道)拖拽到(列维度)中,将(金额和销量)两个度量字段拖拽到(指标)栏目中,系统自动生成一个交叉表,但是这个交叉表默认的将总(行合计)值显示在报表底部,总(列合计)值显示在报表最右端。其他设置与上述分组表相同,过程与截图略。

在这里插入图片描述

明细表(清单表)

​ 清单表是最常见的也是最简单的报表样式,它利用了报表当中的纵向扩展属性,展现了一个列表式的表格,明细表展示的是明细信息,所以明细表跟分组和交叉表不一样,是没有小计合计的,也没有表的快速计算,明细表也无数据条显示功能。

制作步骤

​ 类似于tableau制作清单表。步骤:1、直接在FineBi设计器中点击(图表类型→明细表),然后依次将维度字段(如:日期,渠道,产品ID,产品名称,客户ID,客户名称,销售组,销售员ID,销售员名称)等及度量字段(单价,金额,销量,薪水)等拖拽到(数据)栏目中。系统会自动生成一个明细表,这个明细表是默认将表头冻结了的,切换到(组件样式→格式)下,可以看到默认勾选了(冻结前1列)且默认(分页行数100),这样就会有很长的滚动条,我们可以将(分页行数)修改为15行,以便查看。其他设置与上述分组表相同,过程与截图略。

在这里插入图片描述

KPI指标卡

​ 注意:指标卡通常放置在可视化大屏报表的最顶端,最重要的位置上。功能:可以一眼让人看到公司或项目的KPI实际展示情况。

​ 创建KPI指标卡的步骤类似于Quick Bi指标卡和永洪指标看板创建。创建指标卡的具体步骤是:1、直接在FineBi设计器中点击(图表类型→KPI指标卡)→2、直接将度量字段(金额字段)拖拽到(图形展示区)或(图形属性→文本)里,这样图形展示区会自动生成一个KPI指标卡。

在这里插入图片描述

​ 3、切换到(组件样式→自适应显示)中可以设置KPI指标卡的显示方式(如这里设置了整体适应)。→4、在(图形属性→文本)里,点击文本右侧的(齿轮)图标,弹出的(内容格式)设置框中可以设计KPI指标卡的格式及其形状。

在这里插入图片描述

汽车油量仪表盘/体温计

​ **汽车油量仪表盘和水波图和进度条和体温计四种可视化图是为了展示KPI实际与目标对比情况的一类图表。**通过这类图表可以清楚的看出现在KPI完成目标值的多少,还可以了解我们是否能够完成目标值,离目标值有一段差距时,去探索什么手段来提升KPI。创建汽车油量仪表盘的步骤不同于Quick Bi和永洪BI汽车油量仪表盘的创建。创建(销售额完成率)汽车油量仪表盘的具体步骤是:1、直接在FineBi设计器中点击(图表类型→仪表盘)→2、直接将度量字段(销售额完成率)计算字段拖拽到(图形属性→指针值)里,点击(图形属性→目标值)右侧的小齿轮图标,弹出的功能中将(目标值)切换为(自定义),设置值为1,这样报表编辑区会自动生成一个汽车油量仪表盘。注意:点击如图所示(图形属性→指针值)上面的图标,可以切换仪表盘展示方式,也可以将其切换为体温计展示方式。

在这里插入图片描述

​ 3、为了展示标签,将(销售额完成率)计算字段拖拽到(图形属性→标签)中,这样报表编辑区上的仪表盘就会显示出标签,点击(标签)右侧的小齿轮,可以修改标签的展示方式。

在这里插入图片描述

柱状图

​ 创建柱状图的步骤类似于tableau和永洪柱图创建,具体步骤是:1、直接在FineBi设计器中点击(图表类型→多系列柱形图)→2、分别将维度字段(销售员名称)拖拽到(横轴)区,将度量字段(金额和销量)拖拽到(纵轴)区,系统会自动在(数据区)生成一个名字叫(指标名称)的跨表字段,并且在图形展示区自动生成一个柱子颜色一模一样的双柱状图。→3、为了让两个度量呈现不同的颜色,将(指标名称)字段拖拽到(图形属性→全部→颜色中),那样就变成了两个度量柱子颜色不一样的双柱状图。→4、为了显示标签,将(金额)字段拖拽到(图形属性→金额→标签中),另外将(销量)字段拖拽到(图形属性→销量→标签中)。→5、为了让标签看起来更直观,可以点击(纵轴→金额)胶囊的下拉箭头,点击(数据格式)按钮,对数据格式进行设置(注意:FineBi图形的数据格式,坐标轴和图形上的标签是一致的,无法修改为坐标轴显示一个格式,标签显示另一种格式)。

在这里插入图片描述

​ 6、点击(纵轴)右侧图标的下拉箭头,可以切换双柱图的显示方式,默认是(指标聚合)形式即双柱图两个不同颜色的柱子显示在同一个横轴中,如果切换为(指标并列),则双柱图会变成一上一下分布的两个柱图。

在这里插入图片描述

​ 7、tableau合并两个轴是双轴同步轴,FineBI默认就是上述截图所示,双周已经合并了,金额与销量共用一个Y轴,但是这里金额单元是元,销量单位是件,我们需要将合并的同一个Y轴拆分为左Y轴和右Y轴两个Y轴。我们先切换为(指标聚合)显示,然后点击(纵轴)栏目下右侧的一个字段胶囊(销量字段胶囊)右侧的下拉箭头,在弹出的功能中选择(设置值周(左值轴))按钮,将(共用轴)切换为(右值轴),完成单Y轴拆分为双Y轴操作→8、至于趋势线和预警线,点击(纵轴)栏目下(金额胶囊)右侧的下拉箭头,在弹出的功能中选择(设置分析线→警戒线(横向)),进行(添加警戒线)设置,就可以像tableau一样设置警戒线(如这里的金额平均值警戒线)。

在这里插入图片描述

对比柱形图(蝴蝶图)

​ 创建对比柱形图类似于smartbi蝴蝶图的创建,都是需要一个维度,两个度量,这两个度量就是蝴蝶两个翅膀即对比项。先分别用计算字段计算男性销售额和女性销售额。

IF(${性别}="男",${销售额},0)
IF(${性别}="女",${销售额},0)

​ 具体步骤是:1、直接在FineBi设计器中点击(图表类型→对比柱形图)→2、分别将维度字段(地区)拖拽到(纵轴)区,将度量字段(男性销售额和女性销售额)拖拽到(横轴)区,系统会自动在(数据区)生成一个名字叫(指标名称)的跨表字段,并且在图形展示区自动生成两个柱子颜色一模一样的同向双柱状图。→3、为了让两个度量呈现不同的颜色,将(指标名称)字段拖拽到(图形属性→全部→颜色中),那样就变成了两个度量柱子颜色不一样的双柱状图。

在这里插入图片描述

​ 4、为了让两个柱图的柱子变成蝴蝶的两个翅膀,就需要改变(男性销售额)柱子的朝向,点击(横轴→男性销售额胶囊右侧下拉箭头→设置值轴),在弹出的(设置值轴)功能框中,勾选(轴逆序)按钮,这样系统就自动生成了蝴蝶图。

在这里插入图片描述

​ 5、为了让纵轴的标题(地区)不显示,点击(纵轴→地区胶囊右侧下拉箭头→设置分类轴),在弹出的(设置分类轴)功能框中,取消勾选(显示轴标题)按钮,这样就消除了纵轴标题,相应的蝴蝶图就美观多了。

在这里插入图片描述

柱状图TOPN

​ 创建柱状图TOPN具体步骤是:1、点击(横轴)栏目下维度字段胶囊(如销售员名称胶囊)右侧的下拉箭头,弹出的功能中点击(过滤)按钮,然后另外度量字段(如金额)字段,设置(最大的N个)的值(N=10),这样就生成展示金额前TOP10销售人员的柱图。

在这里插入图片描述

条形图

​ **FineBI没有专门的条形图组件,但是创建条形图实际就是柱状图,他的步骤跟柱状图一模一样,只需要变更一下即可。**创建条形图具体步骤是:1、直接在FineBi设计器中点击(图表类型→多系列柱形图)→2、分别将维度字段(销售员名称)拖拽到(横轴)区,将度量字段(金额和销量)拖拽到(纵轴)区,系统会自动在(数据区)生成一个名字叫(指标名称)的跨表字段,并且在图形展示区自动生成一个柱子颜色一模一样的双柱状图。→3、为了让两个度量呈现不同的颜色,将(指标名称)字段拖拽到(图形属性→全部→颜色中),那样就变成了两个度量柱子颜色不一样的双柱状图。→4、跟tableau一样,FineBI也支持行列互换,将鼠标移动到(横轴)和(纵轴)中间位置,系统会自动出现一个(交换横纵轴的字段)按钮,点击该按钮,系统会自动将柱状图切换为(条形图)。

在这里插入图片描述

线图

​ 创建线图的步骤:1、直接在FineBi设计器中点击(图表类型→多系列折线图)→2、分别将维度字段(日期)拖拽到(横轴)区,将度量字段(金额和销量)拖拽到(纵轴)区,系统会自动在(数据区)生成一个名字叫(指标名称)的跨表字段,并且在图形展示区自动生成一个折线颜色一模一样的双折线图。→3、为了让两个度量呈现不同的颜色,将(指标名称)字段拖拽到(图形属性→全部→颜色中),那样就变成了两个度量线条颜色不一样的双折线图。→4、跟上面的(柱状图)章节一样,也默认为共享轴即但Y轴,也可以跟(柱状图)一样设置为一左一右双Y轴图。→5、如果日期过多,系统生成的线图X轴会出现缩小等情况,点击(横轴)上的(日期)胶囊下拉箭头,点击(设置分类轴)按钮,在(显示轴标签→缩略显示)中设置角度(-45度),这样X轴就会倾斜45度显示。

在这里插入图片描述

折线变曲线

​ 线图默认的连线方式是折线连接,如上图所示,如果需要将折线连接切换为曲线连接,则在(图形属性→全部→连线中),点击(连线)右侧的小齿轮图标,在(样式)中将默认的(折线)切换为(曲线),那折线图就变成的曲线图。

在这里插入图片描述

饼图/环饼图

​ 创建饼图的步骤类似于tableau饼图的创建,但是圆环图比tableau智能多了,且默认就是圆环图。具体步骤是:1、直接在FineBi设计器中点击(图表类型→饼图)→2、依次将本饼图需要的维度字段(销售组)拖拽到(图形属性→颜色)栏目中,度量字段(金额)拖拽到(图形属性→角度)栏目中,系统会自动生成一个饼图→3、至于图形标签,也跟tableau一样将维度字段(销售组)和度量字段(金额)拖拽到(图形属性→标签)即可,若要显示占比,则点击标签中度量字段(金额)胶囊的下拉箭头,点击(快速计算→占比)按钮,实现显示占比效果。点击(标签)右侧的齿轮图标,可以设置(是否显示标签)及(标签位置)及标签的(内容格式)等。点击(半径)右侧的齿轮图标,设置(内径占比)可以切换为饼图和环饼图。→4、至于图例,可以切换为(组件样式→图例)设置图例是否显示及图例位置等。

在这里插入图片描述

饼图度量分区算占比

​ 饼图度量分区算占比类似于tableau数据分桶,但又有不同,原理都是将原本连续的度量字段变成不连续的分组字段。具体步骤是:1、直接在FineBi设计器中点击(图表类型→饼图)→2、依次点击本饼图需要的度量字段(工作时长)右侧下拉箭头,将该字段(复制)一下;然后点击复制多得的(工作时长1)字段右侧下拉箭头,勾选里面的(转化为维度)功能,将其转换为维度;再然后将(工作时长1)字段拖拽到(图形属性→颜色)栏目中,度量字段(总人数)拖拽到(图形属性→角度)栏目中,系统会自动生成一个占比饼图;另外系统自动将(工作时长1)字段进行了分区分组设置,然后点击(工作时长1)胶囊,弹出的功能中点击(区间分组设置)按钮,弹出的区间分组设置弹框中,将(分组方式)设置为(自定义),然后设置(自定义分组)步距及各分区分组命名→3、至于图形标签及图例,同上面(饼图/环饼图)章节,略。

在这里插入图片描述

多指标饼图

​ **多指标饼图是FineBI独有的可视化图形。**创建步骤是:1、直接在FineBi设计器中点击(图表类型→饼图)→2、依次将本饼图需要的度量字段(销售额和利润)拖拽到(图形属性→角度)栏目中,这时,系统会自动生成一个(跨表字段→指标名称)字段,然后将维度字段(指标名称)拖拽到(图形属性→颜色)栏目中,系统会自动生成一个多指标饼图→3、至于图形标签,点击(标签)右侧的齿轮图标,勾选(显示指标汇总值)即可。这样多指标饼图就制作完成了。

在这里插入图片描述

玫瑰图

​ 玫瑰图是饼图的一种变种,饼图是用块的角度区分占比的大小,而玫瑰图是用块的面积大小区分占比的大小,其样式设置与前面饼图的设置相同,略。

​ **注意:FineBI的玫瑰图,不像其他BI工具仅展示单一度量分布情况,他可以展示两个度量字段的分布情况,默认为空心即环玫瑰图。**创建玫瑰图的步骤:1、直接在FineBi设计器中点击(图表类型→玫瑰图)→2、依次将本玫瑰图需要的维度字段(地区)拖拽到(图形属性→颜色)栏目中,度量字段(销售额)拖拽到(图形属性→半径)栏目中,系统会自动生成一个玫瑰图→3、如果想再知道利润分布情况,则可以将度量字段(利润)拖拽到(图形属性→角度)栏目中→4、至于图形标签,也跟tableau一样将维度字段(地区)和度量字段(销售额)拖拽到(图形属性→标签)即可,若要显示占比,则点击标签中度量字段(销售额)胶囊的下拉箭头,点击(快速计算→占比)按钮,实现显示占比效果。点击(标签)右侧的齿轮图标,可以设置(是否显示标签)及(标签位置)及标签的(内容格式)等。点击(半径)右侧的齿轮图标,设置(内径占比)可以切换为实心玫瑰图和环形玫瑰图。→5、至于图例,可以切换为(组件样式→图例)设置图例是否显示及图例位置等。这样一个根据(半径)看销售额分布,根据(角度)看利润分布的玫瑰图就制作完成了。

在这里插入图片描述

旭日图(多层饼图)

​ 旭日图是一个能够很好的展示层级关系的图。

​ 创建旭日图的步骤:1、直接在FineBi设计器中点击(图表类型→多层饼图)→2、依次将本多层饼图需要的维度字段(类别)拖拽到(图形属性→颜色)栏目中,度量字段(销售额)拖拽到(图形属性→大小)栏目中,度量字段(子类别)拖拽到(图形属性→细粒度)栏目中,系统会自动生成一个旭日图→3、至于图形标签,也跟tableau一样将维度字段(类别和子类别)及度量字段(销售额)拖拽到(图形属性→标签)即可。若为了美观,让标签显示在外面,则点击(标签)右侧的齿轮图标,在(标签位置)右侧功能按钮中选择(居外)按钮→4、至于图例,可以切换为(组件样式→图例)设置图例是否显示及图例位置等。这样一个旭日图就制作完成了。

在这里插入图片描述

气泡图

​ 创建气泡图的步骤类似于tableau和永洪气泡图的创建,也类似于上面饼图的创建。创建气泡图的具体步骤是:1、直接在FineBi设计器中点击(图表类型→聚合气泡图)→2、依次将本气泡图需要的维度字段(客户名称)拖拽到(图形属性→颜色)栏目中,度量字段(金额)拖拽到(图形属性→大小)栏目中,系统会自动生成一个气泡图→3、至于图形标签,也跟tableau一样将维度字段(客户名称)拖拽到(图形属性→标签)即可。点击(标签)右侧的齿轮图标,可以设置(是否显示标签)及(标签位置)及标签的(内容格式)等。→4、至于图例,可以切换为(组件样式→图例)设置图例是否显示及图例位置等。

在这里插入图片描述

词云图

​ 词云图总体跟气泡图很相近,可以直接将气泡图转换为词云图,也可以直接将词云图转换为气泡图。

​ 创建词云图的步骤类似于上面气泡图章节中气泡图的创建。创建词云图的具体步骤是:1、直接在FineBi设计器中点击(图表类型→词云)→2、依次将本词云图需要的维度字段(省份)拖拽到(图形属性→文本)栏目中,度量字段(销售额)拖拽到(图形属性→大小)栏目中,系统会自动生成一个词云图,为了美观,可以将(省份)字段拖拽到(图形属性→颜色)栏目中→3、至于图例,可以切换为(组件样式→图例)设置图例是否显示及图例位置等。这样,词云图就制作完成了。

在这里插入图片描述

矩阵树图

​ 矩阵树图跟玫瑰图一样都是用块的面积大小区分占比的大小的图。

​ 创建矩阵树图的具体步骤是:1、直接在FineBi设计器中点击(图表类型→矩阵树图)→2、依次将本矩阵树图需要的维度字段(地区)拖拽到(图形属性→颜色)栏目中,度量字段(销售额)拖拽到(图形属性→大小)栏目中,系统会自动生成一个矩阵树图→3、至于图形标签,也跟tableau和永洪一样将维度字段(地区)和度量字段(销售额)拖拽到(图形属性→标签)即可。点击(标签)右侧的齿轮图标,可以设置(是否显示标签)及(标签位置)及标签的(内容格式)等。→4、至于图例,可以切换为(组件样式→图例)设置图例是否显示及图例位置等。

在这里插入图片描述

漏斗图

​ 创建漏斗图的步骤:1、直接在FineBi设计器中点击(图表类型→漏斗图)→2、依次将本漏斗图需要的维度字段(发货方式)拖拽到(图形属性→颜色)栏目中,度量字段(销售额)拖拽到(图形属性→大小)栏目中,系统会自动生成一个漏斗图→3、至于图形标签,也跟tableau和永洪一样将维度字段(发货方式)和度量字段(销售额)拖拽到(图形属性→标签)即可。点击(标签)右侧的齿轮图标,可以设置(是否显示标签)及(标签位置)及标签的(内容格式)等。→4、至于图例,可以切换为(组件样式→图例)设置图例是否显示及图例位置等。

在这里插入图片描述

桑基图

​ 桑基图是互联网公司常用图,用于表示一组值到另一组值的流动情况,两端是不同时间点维度的数据情况,追踪上一个月不同维度占比的用户到下一个月处于什么样占比的情况,如上个月处于RFM模型的忠诚用户下个月流向了RFM模型中的哪里。

​ 创建桑基图的步骤:1、直接在FineBi设计器中点击(图表类型→桑基图)→2、依次将本桑基图需要的维度字段(子类别)拖拽到(图形属性→起点)栏目中,维度字段(地区)拖拽到(图形属性→终点)栏目中,度量字段(销售额)拖拽到(图形属性→大小)栏目中,系统会自动生成一个桑基图→3、为了让颜色好看些,桑基图流向好区分,将维度字段(子类别)拖拽到(图形属性→颜色)栏目中→4、至于图形标签,点击(标签)右侧的齿轮图标,可以设置勾选(显示节点名称)按钮,系统自动将各个节点标签显示出来。→5、至于图例,可以切换为(组件样式→图例)设置图例是否显示及图例位置等。

在这里插入图片描述

箱线图(K线图)

​ 箱线图应用场景:1、当涉及到多个指标分析时,如对采购价格进行分析,箱形图可分析最高价,最低价等各个价格计算指标。2、当需要了解数据分布特征或需要查看数据中的异常值时,可以使用箱形图进行数据分析。箱形图最常见用于质量管理、人事测评、探索性数据分析等统计分析活动。

普通箱线图

​ 创建普通箱线图的步骤:1、直接在FineBi设计器中点击(图表类型→箱形图)→2、依次将本箱线图需要的维度字段(地区)拖拽到(横轴)栏目中,度量字段(销售额)拖拽到(纵轴)栏目中,维度字段(省份)拖拽到(图形属性→细粒度)栏目中,系统会自动生成一个普通箱线图。到这,普通箱线图制作就完成了。

在这里插入图片描述

含异常点箱线图

​ 创建含异常点箱线图的步骤:1、直接在FineBi设计器中点击(图表类型→自定义图表)→2、依次将本箱线图需要的维度字段(类别)拖拽到(横轴)栏目中,分两次将度量字段(销售额)拖拽到(纵轴)栏目中。然后在(图形属性→销售额)中将第一个(销售额)修改为(箱线图)类型,将第二个(销售额)修改为(点)类型。再然后将维度字段(子类别)拖拽到(图形属性→全部→细粒度)栏目中,系统会自动生成一个含异常点箱线图。到这,含异常点箱线图制作就完成了。

在这里插入图片描述

自定义图表(柱线组合图)

​ **系统是有专门用于创建组合图的组件(自定义图表)组件。**创建柱线组合图的具体步骤是:1、直接在FineBi设计器中点击(图表类型→自定义图表)→2、依次将本组合图需要的维度字段(订单时间)拖拽到(横轴)栏目中,分两次拖拽度量字段(销售额)拖拽到(纵轴)栏目中,点击(纵轴)第二个(销售额)胶囊右侧下拉箭头,弹出的功能中点击(快速计算→同比/环比→环比增长率)。系统会自动生成一个双柱图。

在这里插入图片描述

​ 3、至于将柱图变成线图,点击(图形属性→销售额环比左侧下拉箭头→勾选线图),系统自动将(销售额环比)那个柱图变成了线图。

在这里插入图片描述

​ 4、至于将线图变成以柱图不共用同一个Y轴,则点击(纵轴)右侧的第二个(销售额)胶囊右侧下拉箭头,点击(设置值轴)按钮,弹出的功能中共用轴切换为(右值轴),然后点击(确定)按钮,系统自动在图形右侧生成一个右Y轴,且自动变成合理的柱线组合图。

在这里插入图片描述

​ 5、至于警戒线,点击(纵轴)右侧的第二个(销售额)胶囊右侧下拉箭头,点击(设置分析线→警戒线)按钮,弹出的功能中修改名称为(环比平均值),点击汇总符合,弹出的功能框中点击(平均值)按钮,系统自动将警戒线计算方法显示在右侧空白区,然后点击(确定)按钮,系统自动生成警戒线。

在这里插入图片描述

​ 6、至于按条件显示标签。点击(纵轴)右侧的第二个(销售额)胶囊右侧下拉箭头,点击(特殊显示→注释)按钮,弹出的功能中添加条件,设置(销售额环比大于固定值0.1345),然后点击右侧将(销售额环比)显示在白板中。然后点击(确定)按钮,系统自动将环比值大于13.45%的显示在图形中。

在这里插入图片描述

​ 7、至于动画显示。点击(纵轴)右侧的第一个(销售额)胶囊右侧下拉箭头,点击(特殊显示→闪烁动画)按钮,弹出的功能中添加条件,设置(销售额最大的3个),设置时间间隔(默认为2秒)然后点击(确定)按钮,系统自动将销售额最大的三个闪烁显示。

在这里插入图片描述

散点图

​ 散点图的X轴和Y轴都是度量字段。创建散点图的步骤类似于tableau和永洪散点图创建。创建散点图的具体步骤是:1、直接在FineBi设计器中点击(图表类型→散点图)→2、分别将本散点图需要的度量字段(金额)拖拽到(横轴)栏目中,度量字段(销量)拖拽到(纵轴)栏目中,然后将维度字段(产品名称)拖拽到(图形属性→细粒度)中,系统会自动生成一个气泡图→3、至于图例,可以切换为(组件样式→图例)设置图例是否显示及图例位置等。

在这里插入图片描述

​ 4、至于做四象限图,tableau是用(参考线),永洪使用(目标线),而FineBI使用(设置分析线→警戒线),分别点击(横轴)和(纵轴)上的度量胶囊下拉箭头,点击(设置分析线→警戒线),点击(添加警戒线)按钮,设置(显示数值类型(常量,最大,最小,平均))等后确定即可。

在这里插入图片描述

​ 5、至于借助散点图绘制趋势图,点击(纵轴)上的度量胶囊下拉箭头,点击(设置分析线→警戒线),点击(添加趋势线)按钮,设置(拟合方式(指数,线性,对数,多项式))等后确定即可。

在这里插入图片描述

地图

注意:FineBI的地图都是借助高德地图来创建的。

国家/省/城市字段转换地理维度设置

​ 注意:跟tableau和Quick Bi和永洪一样创建地图之前,在编辑数据时,需要像Tableau将文本类型的(国家),(省份),(城市)等修改为地理维度,否则无法创建地图,但是FineBI和永洪不能直接在编辑数据集时转换为地理维度,而是在(制作组件)时转换。国家/省/城市转换为地理维度的步骤如图:1、直接点击(省)字段右侧的下拉箭头图标,在弹出的功能中点击(地理角色→省/市/自治区)按钮,然后点击(确定)按钮完成地理维度设置。完成地理维度设置后,可以看到(省)字段跟tableau一样出现了(省经度和省纬度)两个带(地球)图标的字段,这就说明转换为地理纬度成功了。和永洪不同,目前的FineBI V6版本暂时无法将地区(西南,西北,东北,华南,华北,华东,港澳台)等转换为地理角色。

在这里插入图片描述

区域(染色)地图/点(气泡)地图/热力地图/热力区域地图/流向地图

​ 其中流向地图需要有出发地和目的地两个字段,这里略。

​ 创建区域地图/点地图/热力地图/热力区域地图的步骤:1、将(区域地图/点地图/热力地图/热力区域地图)组件拖拽到报表编辑区→2、分别将本地图需要分析的地理维度字段(省(经度))字段和(省(纬度))字段拖拽到报表编辑区上的(横轴)和(纵轴)栏目中,在报表编辑区系统会自动生成一个地图(跟永洪一样,这里的地图特别完整,但是如果要做中国地理,切记不要先将地理字段分层,因为分层后,默认绘制的是世界地图)→3、如果是区域地图,则将度量字段(销售额)拖拽到(图形属性→颜色)中,缺陷只能展示一个度量;如果是点地图,则可将度量字段(销售额)拖拽到(图形属性→颜色)中,将度量字段(利润)拖入(图形属性→大小)中,跟tableau和永洪气泡图一样,优点可以展示两个度量;如果是热力地图/热力区域地图,则将度量字段(销售额)拖拽到(图形属性→热力色)和(图形属性→大小)中,缺点也只能展示一个度量;如果是流向地图,则需要有出发地字段和目的地字段,里面的流向线只有(直线,曲线,垂直)三种,远不及永洪美观,常用于物流行业。

在这里插入图片描述

分析可视化仪表板报表

​ 如何制作差异性分析可视化?怎样让自己的可视化报表的信息增益能够发现的多一点,发现更多的数据逻辑及数据问题?这时,我们就需要来分析这些可视化仪表板报表。如进行细化挖掘分析的下钻上卷,图表联动,跳转等功能。

细分分析:如何突出问题重点

上钻下钻

​ 作用:通过所建立的层级结构,一层一层的剥开问题所在的面目。下钻是从高维度层次向低维度层次的下钻,上钻正好相反,通过上钻下钻能够发现不同维度数据问题所在度,常用于地图分析。注意:上钻下钻要求数据集有层级结构的数据。

​ 上钻下钻的应用:选中仪表板中使用了层级结构(如这里的地理层)维度的可视化图表(如这里的地图)。未下钻状态,点击任意中国都会弹出(钻取)按钮,点击该(钻取)按钮就可以实现下钻到省份。这里制作地图时,分别将带地球图标的(地理层(经度))字段和(地理层(纬度))字段拖拽到(横轴)和(纵轴)中,再将(国家)字段拖拽到(图形属性→标签)中,这样才能地图上钻下钻。

在这里插入图片描述

​ 下钻状态,下钻到了(省)维度,点击任意一个(省)都会弹出(钻取)按钮,点击(钻取)按钮可以下钻到城市,点击顶部的(取消钻取)按钮,可以返回国家地图。

在这里插入图片描述

超链接跳转

​ 作用:类似于PPT中的超链接,在当前仪表板报表逻辑主题线下无法分析的问题,让它跳转到另一个能体现该维度指标细化的另一个逻辑主题线的仪表板报表中进行分析。

​ 创建超链接跳转的步骤:1、选中仪表板中的可视化图表右上角的(下拉箭头→跳转设置)→2、切换到(跳转设置)功能区下,点击(添加跳转右侧的+号→分析模版或网页链接)按钮→3、如果上一步选择的是(分析模版),则设置(跳转到)后面的仪表板报表,然后点击(确定)按钮。这样就“超链接跳转”功能就实现了。(注意:FineBI V6版本的跳转功能目前只能跳转打开一个新页面,但不能返回,也不能与弹窗形式显示

在这里插入图片描述

图表联动

​ 联动的作用:让仪表板中所有图表都观看同一维度下某同一种类的数据情况,通过观看其不同类型的图表信息展示形式去发现这个维度的问题究竟在哪里?FineBI采用同一个数据源制作出来的仪表板,默认组成该仪表板的所有组件是可以相互联动的。效果:点击任意组件上的任意一个元素,可以联动组件该仪表板的所有组件,如果想清除联动效果,可以点击仪表板顶部的(清除所有联动)按钮,或点击那个组件右上角的(清除联动项)按钮即可。至于要取消某个组件与另一个组件间的相互联动,则分别点击需要设置的那两个组件右上角的(下拉箭头→联动设置→可双向联动)按钮,注意两个组件都要设置,完成取消某两个组件之间的联动。

在这里插入图片描述

分析预警:如何增强信息增益

​ 注意:目前标准版本只有警戒线和趋势线两种分析预警功能。

警戒线

​ 借助警戒线可以知道哪个指标点的KPI数值低于我们的理想预期,在tableau中,叫做参考线,永洪叫目标线。

​ 创建警戒线的步骤:1、以散点图为例,tableau是用(参考线),永洪使用(目标线),而FineBI使用(设置分析线→警戒线),分别点击(横轴)和(纵轴)上的度量胶囊下拉箭头,点击(设置分析线→警戒线),点击(添加警戒线)按钮,设置(显示数值类型(常量,最大,最小,平均))等后确定即可。

在这里插入图片描述

趋势线(含预测)

​ 创建趋势线的步骤:1、以散点图为例,点击(纵轴)上的度量胶囊下拉箭头,点击(设置分析线→警戒线),点击(添加趋势线)按钮,设置(拟合方式(指数,线性,对数,多项式))等后确定即可。

在这里插入图片描述

数据解释

​ 借助数据解释可以知道指标异常所在指标点的具体产生原因,类似于永洪数据解释,但又不同。以下面的折线图为例,想知道21年6月为何销售额更高,更高的原因是哪些产品卖得好,那个省卖的好。注意:数据解释只有点某个点的时候才会弹出,打开报表时处于隐藏状态的。

在这里插入图片描述

​ 创建数据解释的步骤:1、以折线图为例,直接在FineBi设计器中点击左上角的(数据解释)按钮,弹出(数据解释功能设置)框→2、将维度解释依据切换为(自定义),然后(省份)和(类别)两个维度字段拖拽到白板中,点击(确定)即可完成数据解释设置。→3、至于效果,点击图形展示区中折线图上任意一点,弹出(数据解释)四个字,点击弹出的(数据解释),系统自动弹出该点的数据解释弹框,里面包含所点击的点销售额排行前5的省份及该省份对应产品类别的名称。

在这里插入图片描述

管理系统设置

​ 报告制作时,可以在菜单栏的(管理系统)下可以对FineBI报表系统进行设置。常用的管理系统设置有(目录管理,用户管理,权限管理)三种。

目录管理设置

​ 目的:让我们制作的可视化仪表板或发布显示在目录的统一位置中,即在目录中创建一个类似文件夹的东东来保存开发的可视化报表。步骤:1、点击(管理系统→目录管理→添加目录)按钮,输入目录名称,系统默认(展示终端)为勾选(PC,平板,手机)三项,点击(确定)按钮即可。

在这里插入图片描述

​ 2、选中刚刚创建的(KDS_Test)目录,点击(BI模版)按钮,弹出(批量添加BI模版)选项卡,点击(我的模版),将需要展示的可视化仪表板全部勾选,然后点击(下一步)按钮,这样就实现了将可视化报表添加到刚刚创建的(KDS_Test)目录中。这个将仪表板添加进目录也叫仪表板报表挂出展示,只有挂出展示后,别人才能登录账户才能看到开发人员所开发的仪表板报表。

在这里插入图片描述

用户管理

​ 目的:添加用户/导入用户/同步用户的方法来创建用户,为这些新用户创建账户,初始密码,匹配用户角色和用户部门,为后期的权限管理做准备。

添加用户

​ 步骤:1、点击(管理系统→用户管理→添加用户)按钮,输入(用户名,姓名,密码)为了方便后期权限管理,还可以匹配上(部门职责和角色)。

在这里插入图片描述

权限管理

​ 步骤:1、点击(管理系统→权限管理→用户最终权限)按钮,找到刚刚创建的用户(张三)并选中张三用户,在(目录权限)栏目下设置其对(销售额与销量分析)有(查看)权限,但是无(导出和编辑)两个权限。然后登录张三的账户(00001)就可以验证他的权限配置是否生效。

在这里插入图片描述

​ 步骤:2、上一步设置了(目录权限),张三登录后,是可以看到那张(销售额与销量分析)报表,但是打开后却没有内容,那是因为没有设置(数据权限),在上一步的基础上,切换到(数据权限)设置栏目下,设置其对(销售额与销量分析报表)的数据源表(sale表)有(使用)权限,但是无(管理)两个权限。然后登录张三的账户(00001)就可以验证他的权限配置是否生效。

在这里插入图片描述

​ 结果:登录张三的账户(00001)打开后看到的报表效果。

在这里插入图片描述

导出策略

​ 报表可以以PDF格式,Excel格式进行输出。步骤:在(目录)中打开需要导出的仪表板报表或者在(我的分析)打开仪表板报表,切记不能在(编辑)状态下导出,但可以在预览状态下导出,但是在(目录)中打开是直接处于查看状态,直接点击左上角的(导出→导出Excel或者导出Pdf)按钮进行报表的导出。

在这里插入图片描述

仪表板报表制作

​ 步骤:1、类似于tableau仪表板制作,在制作完上述组件(tableau的工作簿)后,点击(添加仪表板)按钮来创建仪表板,系统自动生成一个空白仪表板,点击右上端的(仪表板样式)按钮,系统会弹出很多(仪表板样式),选择需要使用的仪表板样式可以直接利用。

在这里插入图片描述

​ 2、给仪表板添加标题,点击左上角的(其他)按钮,弹出(文件组件,图片组件,Web组件,Tab组件)四个组件,将(文本组件)拖拽到仪表板顶部,并输入相应的标题文字,修改文字字体大小及对齐方式及样式等,这样仪表板标题制作完成。

在这里插入图片描述

​ 3、给仪表板添加组件(类似于tableau中给仪表板添加工作蒲),点击左上角的(组件)按钮,弹出之前创建的所有组件(散点图,气泡图,线图,柱图,环饼图,明细表,交叉表,分组表)八个组件,将上述八个组件依次拖拽到仪表板相应的位置中(不同于tableau,这里没有容器的概念,无法设置各个组件在仪表板上的绝对位置坐标,只能拉伸大小和拖拽到相应位置),拖拽过来了的组件,组件名称字体会变暗淡。

在这里插入图片描述

​ 4、给仪表板添加过滤组件,点击左上角的(过滤组件)按钮,弹出(时间过滤组件,文本过滤组件,树过滤组件,数值过滤组件,其他过滤组件,按钮)六种类型的过滤组件。

在这里插入图片描述

​ 5、给仪表板添加过滤(年份)组件,点击左上角的(过滤组件)按钮,弹出(时间过滤组件→年份)的过滤组件,将(年份)过滤器拖拽到仪表板对应的位置,系统自动弹出过滤器设置界面,将(日期)字段拖拽到设计界面的(字段)栏目右侧,然后点击(确定)即可。其他如(文本过滤组件,数值过滤组件)也是一样的做法来绑定数据源。

在这里插入图片描述

​ 6、给仪表板添加过滤(下拉树)组件,点击左上角的(过滤组件)按钮,弹出(树过滤组件→下拉树)的过滤组件,将(下拉树)过滤器拖拽到仪表板对应的位置,系统自动弹出过滤器设置界面,将(销售组,销售员名称)两个字段拖拽到设计界面的(字段)栏目右侧,然后点击(确定)即可。

在这里插入图片描述

​ 7、给仪表板添加(查询和重置)两个按钮组件,点击左上角的(过滤组件)按钮,弹出(按钮→查询按钮/重置按钮)的过滤组件,将(查询按钮/重置按钮)过滤器拖拽到仪表板对应的位置。这样在仅仅改变一个或多个过滤组件的内容时,仪表板页面不会直接变化,只有改变后点击了(查询)按钮才会变化,反之,如果要更改过滤器的内容,则点击(重置)按钮,然后进行重新设置,(查询和重置)两个按钮预览打开可以看到效果,发布后打开也能看到效果。

在这里插入图片描述

​ 8、给仪表板添加装饰性图片组件,点击左上角的(其他)按钮,弹出(文件组件,图片组件,Web组件,Tab组件)四个组件,将(图片组件)拖拽到仪表板顶部(至于图片,无论是PPT还是BI,可以从阿里巴巴矢量图标库进行下载,网址是https://www.iconfont.cn/),然后双击,再然后找到本地保存的图片进行上传,上传图片后,拖拽调整图片大小,再然后点击图片右侧的(图片尺寸→适应组件)按钮,让图片自适应,最后点击图片右侧的(下拉箭头→悬浮)按钮将装饰图片变成悬浮,这样仪表板装饰图片设计完成。

在这里插入图片描述

相关文章:

帆软FineBi V6版本经验总结

帆软FineBi V6版本经验总结 BI分析出现背景 ​ 现在是一个大数据的时代&#xff0c;每时每刻都有海量的明细数据出现。这时大数据时代用户思维是&#xff1a;1、数据的爆炸式增长&#xff0c;人们比起明细数据&#xff0c;更在意样本的整体特征、相互关系。2、基于明细的“小…...

03.MySQL的体系架构

MySQL的体系架构 一、MySQL简介二、MySQL的体系架构三、MySQL的内存结构四、MySQL的文件结构 一、MySQL简介 MySQL是一个开源的关系型数据库管理系统&#xff08;RDBMS&#xff09;&#xff0c;由瑞典MySQL AB公司开发&#xff0c;后被Sun公司收购&#xff0c;Sun公司被Oracle…...

随笔笔记-2023

随笔 computed 是基于他们的依赖进行缓存的&#xff0c;。如果要随时计算 new Date().now&#xff08;因为不是响应式的&#xff09;,那么需要用 computed。 如果不希望用缓存那么就用 methods 字符与字节 1 字节8 位1B8 bit;1KB 1024B,1MB1024KB1024*1024B 编码&#xff1a;…...

2023.12.31 Python 词频统计

练习&#xff1a;使用Python中的filter、map、reduce实现词频统计 样例数据&#xff1a; hello world java python java java hadoop spark spark python 需求分析&#xff1a; 1- 文件中有如上的示例数据 2- 读取文件内容。可以通过readline() 3- 将一行内容切分得到多个单…...

day12--java高级编程:网络通讯

5 Day19–网络通信(Socket通信) 说明&#xff1a; io流是跟本地的文件进行数据的传输&#xff0c;读或者写。网络通信&#xff1a;数据在网络中进行的传输。 本章专题与脉络 1. 网络编程概述 Java是 Internet 上的语言&#xff0c;它从语言级上提供了对网络应用程序的支持&…...

MongoDB聚合:$out

$out阶段将聚合管道产生的文档写入到指定的集合&#xff0c;从MongoDB4.4开始&#xff0c;支持指定数据库。$out阶段必须放在聚合管道的最后&#xff0c;支持聚合结果任意大小的数据集。 警告&#xff1a; 如果指定的集合已经存在则会被替换。 语法 用法 1&#xff1a; 定数…...

一次奇葩的spin_lock_irq / spin_unlock_irq使用不当导致的系统卡死分析

这是在调试内核block层时遇到的一例奇葩的soft lock锁死问题(内核版本centos 8.3&#xff0c;4.18.0-240)&#xff0c;现场如下&#xff1a; [ 760.247152] watchdog: BUG: soft lockup - CPU#0 stuck for 23s! [kworker/0:1:2635]……………..[ 760.247184] CPU: 0 PID: 26…...

公司创建百度百科需要哪些内容?

一个公司或是一个品牌想要让自己更有身份&#xff0c;更有知名度&#xff0c;更有含金量&#xff0c;百度百科词条是必不可少的。通过百度百科展示公司的详细信息&#xff0c;有助于增强用户对公司的信任感&#xff0c;提高企业形象。通过百度百科展示公司的发展历程、领导团队…...

qt中信号槽第五个参数

文章目录 connent函数第五个参数的作用自动连接(Qt::AutoConnection)直接连接(Qt::DirectConnection - 同步)同线程不同线程 队列连接(Qt::QueuedConnection - 异步)同一线程不同线程 锁定队列连接(Qt::BlockingQueuedConnection) connent函数第五个参数的作用 connect(const …...

模式识别与机器学习-SVM(线性支持向量机)

线性支持向量机 线性支持向量机间隔距离学习的对偶算法算法:线性可分支持向量机学习算法线性可分支持向量机例子 谨以此博客作为复习期间的记录 线性支持向量机 在以上四条线中&#xff0c;都可以作为分割平面&#xff0c;误差率也都为0。但是那个分割平面效果更好呢&#xff1…...

【并行计算】GPU,CUDA

一、CUDA层次结构 1.kernel核函数 一个CUDA程序是一个kernel核函数被GPU的多个计算单元并行执行的过程&#xff0c;CUDA给了如下抽象 dim3 threadsPerBlock(4, 3, 1); dim3 numBlocks(3, 2, 1); matrixAdd<<<numBlocks, threadsPerBlock>>>(A, B, C); 2.G…...

计算机网络教案——计算机网络设备章节

第五章 计算机网络设备 一、教学目标: 1. 了解计算机网络的主要设备 2. 了解计算机网络设备的主要原理 3. 掌握计算机网络设备的基本用途 4. 掌握计算机网络设备的使用常识 二、教学重点、难点 计算机网络设备的主要原理 三、技能培训重点、难点 计算机网络设备的使用…...

什么是SLAM中的回环检测,如果没有回环检测会怎样

目录 什么是回环检测 如果没有回环检测 SLAM&#xff08;Simultaneous Localization and Mapping&#xff0c;即同时定位与地图构建&#xff09;是一种使机器人或自动驾驶汽车能够在未知环境中建立地图的同时定位自身位置的技术。回环检测&#xff08;Loop Closure Detectio…...

ubuntu 通过文件设置静态IP、DNS、网关

1. 确定网络接口名称 首先&#xff0c;使用 ip a 命令确定您要配置的网络接口名称。 2. 编辑 Netplan 配置文件 使用文本编辑器&#xff08;如 nano&#xff09;打开或创建 Netplan 配置文件&#xff1a; sudo nano /etc/netplan/01-netcfg.yaml3. 输入 Netplan 配置 在编…...

mapboxgl 中热力图的实现以及给热力图点增加鼠标移上 popup 效果

文章目录 概要效果预览技术思路技术细节小结 概要 本篇文章还是关于最近做到的 mapboxgl 地图展开的。 借鉴官方示例&#xff1a;https://iclient.supermap.io/examples/mapboxgl/editor.html#heatMapLayer 效果预览 技术思路 将接口数据渲染到地图中形成热力图。还需要将热…...

golang并发安全-sync.map

sync.map解决的问题 golang 原生map是存在并发读写的问题&#xff0c;在并发读写时候会抛出异常 func main() {mT : make(map[int]int)g1 : []int{1, 2, 3, 4, 5, 6}g2 : []int{4, 5, 6, 7, 8, 9}go func() {for i : range g1 {mT[i] i}}()go func() {for i : range g2 {mT[…...

开发第一个SpringBoot程序

使用命令创建Maven工程 mvn archetype:generate -DgroupIdorg.sang -DartifactIdchapter01 -DarchetypeArtifactIdmaven-archetype-quickstart -DinteractiveModefalse 参数说明&#xff1a; -DgroupId 组织Id&#xff08;项目包名&#xff09; -DartifactId 项目名称或模块…...

2023年度总结—你是你的年度MVP吗?

这段年度总结其实我之前就想写了&#xff0c;大概就是市赛比完之后18号的样子把&#xff0c;但是因为太懒了就一直拖到了现在哈哈&#xff0c;我思来想去&#xff0c;翻来覆去&#xff0c;彻夜难眠&#xff0c;想了想&#xff0c;还是决定把它写了吧&#xff01;毕竟&#xff0…...

Linux基础知识学习3

vim编辑器 其分为四种模式 1.普通(命令)模式 2.编辑模式 3.底栏模式 4.可视化模式 vim编辑器被称为编辑器之神&#xff0c;而Emacs更是神之编辑器 普通模式&#xff1a; 1.光标移动 ^ 移动到行首 w 跳到下一个单词的开头…...

Leetcode5-在长度2N的数组中找出重复N次的元素(961)

1、题目 给你一个整数数组 nums &#xff0c;该数组具有以下属性&#xff1a; nums.length 2 * n. nums 包含 n 1 个 不同的 元素 nums 中恰有一个元素重复 n 次 找出并返回重复了 n 次的那个元素。 示例 1&#xff1a; 输入&#xff1a;nums [1,2,3,3] 输出&#xff1a…...

网络编程(Modbus进阶)

思维导图 Modbus RTU&#xff08;先学一点理论&#xff09; 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议&#xff0c;由 Modicon 公司&#xff08;现施耐德电气&#xff09;于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…...

Admin.Net中的消息通信SignalR解释

定义集线器接口 IOnlineUserHub public interface IOnlineUserHub {/// 在线用户列表Task OnlineUserList(OnlineUserList context);/// 强制下线Task ForceOffline(object context);/// 发布站内消息Task PublicNotice(SysNotice context);/// 接收消息Task ReceiveMessage(…...

线程与协程

1. 线程与协程 1.1. “函数调用级别”的切换、上下文切换 1. 函数调用级别的切换 “函数调用级别的切换”是指&#xff1a;像函数调用/返回一样轻量地完成任务切换。 举例说明&#xff1a; 当你在程序中写一个函数调用&#xff1a; funcA() 然后 funcA 执行完后返回&…...

学习STC51单片机32(芯片为STC89C52RCRC)OLED显示屏2

每日一言 今天的每一份坚持&#xff0c;都是在为未来积攒底气。 案例&#xff1a;OLED显示一个A 这边观察到一个点&#xff0c;怎么雪花了就是都是乱七八糟的占满了屏幕。。 解释 &#xff1a; 如果代码里信号切换太快&#xff08;比如 SDA 刚变&#xff0c;SCL 立刻变&#…...

SiFli 52把Imagie图片,Font字体资源放在指定位置,编译成指定img.bin和font.bin的问题

分区配置 (ptab.json) img 属性介绍&#xff1a; img 属性指定分区存放的 image 名称&#xff0c;指定的 image 名称必须是当前工程生成的 binary 。 如果 binary 有多个文件&#xff0c;则以 proj_name:binary_name 格式指定文件名&#xff0c; proj_name 为工程 名&…...

Aspose.PDF 限制绕过方案:Java 字节码技术实战分享(仅供学习)

Aspose.PDF 限制绕过方案&#xff1a;Java 字节码技术实战分享&#xff08;仅供学习&#xff09; 一、Aspose.PDF 简介二、说明&#xff08;⚠️仅供学习与研究使用&#xff09;三、技术流程总览四、准备工作1. 下载 Jar 包2. Maven 项目依赖配置 五、字节码修改实现代码&#…...

A2A JS SDK 完整教程:快速入门指南

目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库&#xff…...

C#中的CLR属性、依赖属性与附加属性

CLR属性的主要特征 封装性&#xff1a; 隐藏字段的实现细节 提供对字段的受控访问 访问控制&#xff1a; 可单独设置get/set访问器的可见性 可创建只读或只写属性 计算属性&#xff1a; 可以在getter中执行计算逻辑 不需要直接对应一个字段 验证逻辑&#xff1a; 可以…...

Web后端基础(基础知识)

BS架构&#xff1a;Browser/Server&#xff0c;浏览器/服务器架构模式。客户端只需要浏览器&#xff0c;应用程序的逻辑和数据都存储在服务端。 优点&#xff1a;维护方便缺点&#xff1a;体验一般 CS架构&#xff1a;Client/Server&#xff0c;客户端/服务器架构模式。需要单独…...

Java详解LeetCode 热题 100(26):LeetCode 142. 环形链表 II(Linked List Cycle II)详解

文章目录 1. 题目描述1.1 链表节点定义 2. 理解题目2.1 问题可视化2.2 核心挑战 3. 解法一&#xff1a;HashSet 标记访问法3.1 算法思路3.2 Java代码实现3.3 详细执行过程演示3.4 执行结果示例3.5 复杂度分析3.6 优缺点分析 4. 解法二&#xff1a;Floyd 快慢指针法&#xff08;…...