数据可视化基础与应用-02-基于powerbi实现连锁糕点店数据集的仪表盘制作

总结

本系列是数据可视化基础与应用的第02篇,主要介绍基于powerbi实现一个连锁糕点店数据集的仪表盘制作。

数据集描述

有一个数据集,包含四张工作簿,每个工作簿是一张表,其中可以销售表可以划分为事实表,产品表,日期表和门店表为维度表。

工作簿名称、字段含义和数据集的对应关系如下图:

数据集下载

设计思路

本案例整体设计思路如下:

1.拿到数据集先对案例背景进行介绍

2.再完成数据获取和整理阶段

3.然后对多张表进行数据建模,同时为新建列和度量值。新建列和度量值用power query也可以完成,但我们一般基于power pivot在数据建模阶段完成。

4.进行可视化。

案例背景

某连锁糕点是一个全国连锁糕点店,在全国共有22家店铺。主要制作并销售3类产品:

面包、饼干和饮料。

面包包括吐司面包、牛角面包和全麦面包三种,

饼干包括曲奇饼干和苏打饼干两种;

其代销的饮料包括可乐和果汁两种。

案例数据

各店的POS信息系统中提取并整理了门店数据、日期数据、产品数据和销售数据(2019年和2020年)。

案例目标

某连锁糕点连锁店希望利用Power BI的可视化分析功能,通过各店相关数据的横向纵向对比分析,找到存在的问题,发现新的销售增长点。

(参考文献中提到:本案例为纯模拟案例,非真实案例)

数据获取与整理

数据获取

打开Power BI

选择文件

选择打开

选择加载,如果选择转换数据,会跳转到power query中。

数据整理

选择主页--转换数据--转换数据,:

进入到Power BI的Power Query页面。

目标1:日期类型转为文本类型

Power Query中整理数据日期表中"年"和"月"的字段类型需将其调整为文本型,与原表类型一致。日期类型调整为日期类型

选择日期表,查看如下:

需要说明的是,原始数据的年和月与这里的不同,excel中的数据如下:

Power BI会根据字段类型,自动补全,比如把2019年补充为2019年1月1日,把1月补充为2023年1月1日。这时需要我们把年和月的字段修改为文本。

选择替换当前类型

即可把年的日期类型替换为文本类型

再修改月的字段为文本类型,如下

目标2:添加月排序依据

"月"字段默认是按文本排序的,顺序不正确的本案例需将"月"字段复制一份,然后将数据中的"月"字拆分掉,只保留整数部分作为月份排序的依据.

选择月--选择添加列--选择重复列

生成如下

选择月列--选择转换--选择拆分列--选择字符数。

输入字符1,选择尽可能靠右,选择确定

拆分如下

删除月-复制.2 列 把 月-复制.1的名字修改为月排序依据,目前日期表的字段如下

目标3: 删除空行和错误

选择日期表--主页--删除行--再依次选择删除空行和删除错误

删除后如下:

应用以上的数据整理

数据建模

目标1: 完成事实和维度表的关联

本案例数据建模是建立维度表(产品表、日期表、门店表)和事实表(销售表)之间的关联;产品表通过"产品ID"与销售表自动关联;门店表通过"店铺ID" 与销售表自动关联;日期表通过"日期" 与销售表中的"订单日期"对应;

选择日期表--选择主页--选择管理关系--选择新建--选择日期表选择日期字段--选择销售表选择订单日期字段--选择确定。

返回如下

点击关闭,关联完成

目标2:新建列

为销售表新建列(字段),单价和金额;

DAX(Data Analysis Expression,数据分析表达式)

单价=RELATED('产品表'[单价])

金额='销售表'[数量]*'销售表'[单价]
新建单价列

新建金额列

目标3: 新建度量值

度量值:Power BI数据建模的灵魂;

数据分析的指标;

度量值不改变源数据,也不改变数据模型;

4个度量值:

销售金额=SUM('销售表'[金额])

销售数量=SUM('销售表'[数量])

营业店铺数量= DISTINCTCOUNT('销售表'[店铺ID])

单店平均销售额=[销售金额]/[营业店铺数量]

在这里插入图片描述

新建度量值和新建列的方式基本一样,新建销售金额度量值

按照

销售金额=SUM('销售表'[金额])

销售数量=SUM('销售表'[数量])

营业店铺数量= DISTINCTCOUNT('销售表'[店铺ID])

单店平均销售额=[销售金额]/[营业店铺数量]

创建所有度量值,如下。

数据可视化

目标1:插入图像,文本框,形状等

选择报表视图--选择插入--然后选择文本框,形状和图像。修改形状的演示,如下。

目标2:卡片图 突出显示可视化分析的关键数据;

本案例:销售金额、销售数量、营业店铺数量、单店平均销售额;

添加销售金额卡片图

把销售金额拖入数据,然后点击卡片图,修改其标注中的文字和卡中的边框,位置如下:

销售金额卡片图最终输出如下:

接下来创建销售数量、营业店铺数量、单店平均销售额卡片图,并把卡片图合在一起,如下:

目标3:插入环形图

环形图就是中间挖空的饼图,它是依靠环形的长度来表达比例的大小;

本案例:在环形图中显示不同产品的销售金额占比情况;

目标4:插入条形图

条形图可利用条状的长度反映数据的差异,适用于多个项目的分类排名比较;

本案例:条形图中显示不同产品分类下销售额,并按销售额大小进行排序;

目标5:插入折线图和簇状柱形图

折线图可以显示随时间变化的连续数据,非常适用于显示在相同时间间隔下的数据变化趋势;柱形图可以利用柱形的高度反映数据差异;

本案例:折线和簇状柱形图中显示不同月份的销售金额和销售数量

这时月份的排序不好,我们按照月排序字段进行排序

然后再刷新下折线图和簇状柱形图就可以完成排序

目标6:插入气泡图

气泡图是一种特殊的散点图,主要通过横纵坐标值和气泡大小来展现数据的分布情况;

气泡图表现数据的维度多、图形美观、欣赏性强;

本案例:在气泡图中显示不同月份的销售金额和销售数量的动态变化情况。

目标7:插入切片器

切片器是画布中的视觉筛选器,是报表中的一种可视化图形元素;

切片器本身不为了展示数据,而是作为展示数据时的各种维度选择本案例:

设置"年度"和"店铺名称"切片器;

这里的店铺名称修改为了磁片显示

报表美化

排版布局;

设置格式;

主题风格;

相关推荐
山海青风8 小时前
使用 OpenAI 进行数据探索性分析(EDA)
信息可视化·数据挖掘·数据分析
soso196818 小时前
DataWorks快速入门
大数据·数据仓库·信息可视化
前端拾光者18 小时前
利用D3.js实现数据可视化的简单示例
开发语言·javascript·信息可视化
请你喝好果汁6412 天前
ggplot2-scale_x_continuous()
信息可视化
敲代码不忘补水2 天前
Python Matplotlib 数据可视化全面解析:选择它的七大理由与入门简介
开发语言·python·信息可视化·numpy·pandas·matplotlib
前端拾光者2 天前
前端数据可视化思路及实现案例
前端·数据库·信息可视化
德希智慧水利水务2 天前
河道水位流量一体化自动监测系统:航运安全的护航使者
网络·人工智能·算法·信息可视化
DataGear3 天前
DataGear 5.2.0 发布,数据可视化分析平台
javascript·信息可视化·数据分析·html·echarts·数据可视化
c无序3 天前
数据可视化复习1-Matplotlib简介属性和创建子图
信息可视化·matplotlib
DataGear3 天前
DataGear 企业版 1.3.0 发布,数据可视化分析平台
javascript·信息可视化·数据分析·html·echarts·数据可视化