数据可视化基础与应用-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:插入切片器

切片器是画布中的视觉筛选器,是报表中的一种可视化图形元素;
切片器本身不为了展示数据,而是作为展示数据时的各种维度选择本案例:
设置“年度”和“店铺名称”切片器;

在这里插入图片描述

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

报表美化

排版布局;
设置格式;
主题风格;

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

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

相关文章

【Python小技巧】将list变量写入本地txt文件并读出为list变量的方法(附代码)

文章目录 前言一、万能的txt和eval大法二、具体代码和使用方法总结 前言 使用Python,我们偶尔需要将一些变量保存到本地,并被其它代码读取作为参数,那么怎么办呢? 一、万能的txt和eval大法 这里教大家一个简单的方法&#xff0c…

912. 排序数组(快速排序)

快速排序: 分:找到分成两部分进行排序的pos(使用partition)治:分别对这两部分进行快速排序 重点:partition 找到pivot(两个方法:1. 取第一个值;2. 取随机值&#xff09…

Linux时间同步(PPS、PTP、chrony)分析笔记

1 PPS(pulse per second) 1.1 简介 LinuxPPS provides a programming interface (API) to define in the system several PPS sources. PPS means "pulse per second" and a PPS source is just a device which provides a high precision signal each second so t…

每日一题 2673使二叉树所有路径值相等的最小代价

2673. 使二叉树所有路径值相等的最小代价 题目描述: 给你一个整数 n 表示一棵 满二叉树 里面节点的数目,节点编号从 1 到 n 。根节点编号为 1 ,树中每个非叶子节点 i 都有两个孩子,分别是左孩子 2 * i 和右孩子 2 * i 1 。 树…

Java缓存简介

内存访问速度和硬盘访问速度是计算机系统中两个非常重要的性能指标。 内存访问速度:内存是计算机中最快的存储介质,它的访问速度可以达到几纳秒级别。内存中的数据可以直接被CPU访问,因此读写速度非常快。 硬盘访问速度&…

学习和工作的投入产出比(节选)

人工智能统领全文 推荐包含关于投入、产出、过剩、市场关注、案例、结果和避雷等主题的信息: 投入与产出: 投入和产出都有直接和间接两类常见形式。常见的四种组合是:直接投入、直接产出、间接投入、间接产出。 过剩: 过剩是一个重…

力扣SQL50 无效的推文 查询

Problem: 1683. 无效的推文 思路 👨‍🏫 参考 char_length(str):计算 str 的字符长度length(str):计算 str 的字节长度 Code select tweet_id from Tweets where char_length(content) > 15;

C++与 Fluke5500A设备通过GPIB-USB-B通信的经验积累

C与 Fluke5500A设备通过GPIB-USB-B通信的经验积累 以下内容来自:C与 Fluke5500A设备通过GPIB-USB-B通信的经验积累 - JMarcus - 博客园 (cnblogs.com)START 1.需要安装NI-488.2.281,安装好了之后,GPIB-USB-B的驱动就自动安装好了 注意版本…

动态规划(算法竞赛、蓝桥杯)--单调队列滑动窗口与连续子序列的最大和

1、B站视频链接&#xff1a;E11【模板】单调队列 滑动窗口最值_哔哩哔哩_bilibili 题目链接&#xff1a;滑动窗口 /【模板】单调队列 - 洛谷 #include <bits/stdc.h> using namespace std; const int N1000010; int a[N],q[N];//q存的是元素的下标 int main(){int n,k;…

unity学习(41)——创建(create)角色脚本(panel)——UserHandler(收)+CreateClick(发)——创建发包!

1.客户端的程序结构被我精简过&#xff0c;现在去MessageManager.cs中增加一个UserHandler函数&#xff0c;根据收到的包做对应的GameInfo赋值。 2.在Model文件夹下新增一个协议文件UserProtocol&#xff0c;内容很简单。 using System;public class UserProtocol {public co…

金融短信群发平台具有那些特点

金融短信群发平台的特点主要包括以下几个方面&#xff1a; 1.高效性&#xff1a;金融短信群发平台能够快速地发送大量的短信&#xff0c;使得金融信息能够迅速传达给目标客户&#xff0c;保证了信息的及时性和有效性。 2.安全性&#xff1a;金融短信群发平台对于信息的安全性非…

蓝桥杯练习系统(算法训练)ALGO-995 24点

资源限制 内存限制&#xff1a;256.0MB C/C时间限制&#xff1a;1.0s Java时间限制&#xff1a;3.0s Python时间限制&#xff1a;5.0s 问题描述 24点游戏是一个非常有意思的游戏&#xff0c;很流行&#xff0c;玩法很简单&#xff1a;给你4张牌&#xff0c;每张牌上有数…

【JS】sort方法的基本使用与双重、多重排序:对象数组按照多个对象属性进行排序

【JS】对象数组按照多个对象属性进行排序&#xff08;sort方法&#xff09; 一、sort():用于对数组的元素进行排序,并返回数组&#xff0c;arr.sort()默认为升序排列二、sort()用法三、双重、多重排序&#xff1a;对象数组按照多个对象属性进行排序&#xff08;sort方法&#x…

设备树学习(DOING)

我的理解本质上还是复用。尤其是嵌入式领域&#xff0c;设备多种多样&#xff0c;但是很多设备接口都是标准的&#xff0c;或者大同小异。以前驱动开发可能每个设备商都去抄别家的搞进内核&#xff0c;这样造成了大量的垃圾代码。后面linux内核就把这些做成公共库抽象出来&…

SpringBoot整合Kafka

SpringBoot整合Kafka的步骤如下&#xff1a; 添加依赖&#xff1a;在SpringBoot项目的pom.xml文件中添加Kafka的依赖。 <dependency><groupId>org.springframework.kafka</groupId><artifactId>spring-kafka</artifactId><version>版本号…

常见的递归Java实现

形如 public static void test(int n) {if (n > 2) {test(n - 1);}System.out.println("n" n); }重要规则 执行一个方法时&#xff0c;就创建一个新的受保护的独立空间&#xff08;栈空间&#xff09;方法的局部变量是独立的&#xff0c;不会相互影响如果方法中…

【教程】移动互联网时代的APP上架流程和要点

目录 摘要 引言 正文 一、应用商店注册 二、准备APP材料 三、打包上传App 摘要 本文将介绍移动应用程序上架的基本流程和要点&#xff0c;包括应用商店注册、APP材料准备、打包上传App、APP审核以及发布APP的详细步骤。此外&#xff0c;还会提到利用appuploder工具简化i…

Gradio学习(五)—————学习一下布局Column的使用

今天学一下布局 非常简单row就是行column就是列 如下就是两行两列 scale就是缩放比例&#xff0c;如下按钮类scale4&#xff0c;而文本框类scale1&#xff0c;按钮类显示宽度就是文本框类宽度的四倍 import gradio as gr with gr.Blocks() as demo:with gr.Row():with gr.Colu…

Spring Cloud 实战系列之 Zuul 微服务网关搭建及配置

一、创建SpringBoot项目 用mavan搭建也可以。&#xff08;重要的是后面pom里应该引入那些依赖&#xff0c;application.yml怎么配置&#xff09; 由于开始构建项目时选择了Eureka Server&#xff0c;所以pom.xml中不需要手动添加依赖了 首先在启动类SpringcloudApplicatio…

SpringBoot项目连接Redis报错:Connection refused: no further information

今天在使用SpringBoot连接Redis时发生了报错 明明Jedis能够连接成功为什么StringRedisTemplate就不行? 然后在网上找了一下说是关闭防火墙或者修改配置文件但是都不管用 最后发现是Redis在SpringBoot3之后yml的配置方式发生了改变 相较于之前多了一个前缀, 由于我刚开始没有…