总结
本系列是数据可视化基础与应用的第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:插入切片器
切片器是画布中的视觉筛选器,是报表中的一种可视化图形元素;
切片器本身不为了展示数据,而是作为展示数据时的各种维度选择本案例:
设置“年度”和“店铺名称”切片器;
这里的店铺名称修改为了磁片显示
报表美化
排版布局;
设置格式;
主题风格;