数据可视化基础与应用-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:插入切片器
切片器是画布中的视觉筛选器,是报表中的一种可视化图形元素;
切片器本身不为了展示数据,而是作为展示数据时的各种维度选择本案例:
设置“年度”和“店铺名称”切片器;

这里的店铺名称修改为了磁片显示
报表美化
排版布局;
设置格式;
主题风格;
相关文章:
数据可视化基础与应用-02-基于powerbi实现连锁糕点店数据集的仪表盘制作
总结 本系列是数据可视化基础与应用的第02篇,主要介绍基于powerbi实现一个连锁糕点店数据集的仪表盘制作。 数据集描述 有一个数据集,包含四张工作簿,每个工作簿是一张表,其中可以销售表可以划分为事实表,产品表&am…...
前后端分离Vue+nodejs酒店公寓客房预订管理系统udr7l-java-php-django-springboot
本系统的设计与实现共包含13个表:分别是关于我们信息表,配置文件信息表,公寓信息评论表信息表,公寓入住信息表,公寓退房信息表,公寓信息信息表,公寓预订信息表,系统公告信息表,收藏表…...
VUE打包的dist文件放到后端一起发布
背景 前后端分离开发的项目,在部署时为了方便部署,使用集成部署的方式(即前后端在一起部署的方式) 问题 直接将前端打包好的dist文件夹下的内容,放到后端项目的resource/static目录下,但是在启动访问时发…...
React入门之React_渲染基础用法和class实例写法
渲染元素 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>04元素渲染</title><script src&…...
Git自动忽略dll文件的问题
检查了半天发现是sourcetreee的全局忽略文件导致, 从里面删除dll即可。 我是干脆直接删了全局忽略,太恶心了,如下: #ignore thumbnails created by windows Thumbs.db #Ignore files build by Visual Studio *.exe .vsconfig .s…...
sql中如何实现递归
在SQL中,递归通常是通过使用公用表表达式(Common Table Expressions,CTE)来实现的。CTE允许你定义一个临时的结果集,该结果集可以在一个SELECT、INSERT、UPDATE或DELETE语句的主体中被引用。 递归CTE有两个关键部分&a…...
GPT 的基础 - T(Transformer)
我们知道GPT的含义是: Generative - 生成下一个词 Pre-trained - 文本预训练 Transformer - 基于Transformer架构 我们看到Transformer模型是GPT的基础,这篇博客梳理了一下Transformer的知识点。 BERT: 用于语言理解。(Transformer的Encoder…...
微信小程序 --- 常用样式和组件
常用样式和组件 1. 组件和样式介绍 在开 Web 网站的时候: 页面的结构由 HTML 进行编写,例如:经常会用到 div、p、 span、img、a 等标签 页面的样式由 CSS 进行编写,例如:经常会采用 .class 、#id 、element 等选择…...
深圳智能制造半导体芯片行业源代码防泄密完整解决方案
一、芯片半导体行业防泄密,不能用监控及管控方式来实现,采用管控方式,首先不能主动防御,只能进行事后查询,并且管控方式,不利于嵌入式开发,对于嵌入式开发,不管是采用沙箱隔离或u口禁…...
Unity UI适配规则和对热门游戏适配策略的拆解
前言 本文会介绍一些关于UI适配的基础概念,并且统计了市面上常见的设备的分辨率的情况。同时通过拆解目前市面上较为成功的两款休闲游戏Royal Match和Monopoly GO(两款均为近期游戏付费榜前几的游戏),大致推断出他们的适配策略,以供学习和参…...
嵌入式学习day25 Linux
进程基本概念: 1.进程: 程序:存放在外存中的一段数据组成的文件 进程:是一个程序动态执行的过程,包括进程的创建、进程的调度、进程的消亡 2.进程相关命令: 1.top 动态查看当前系统中的所有进程信息(根据CPU占用率排序&a…...
Oracle数据泵跨大版本迁移数据库
Oracle数据泵跨大版本迁移数据库 source库导出元数据传输dump和数据文件到target库target库导入数据库迁移后的工作 🦈场景:将测试环境中一台Oracle 11g数据库迁移到另一台新搭建的19c数据库中。 🤔分析:由于是跨数据库大版本&…...
如何在Win系统从零开始搭建Z-blog网站,并将本地博客发布到公网可访问
文章目录 1. 前言2. Z-blog网站搭建2.1 XAMPP环境设置2.2 Z-blog安装2.3 Z-blog网页测试2.4 Cpolar安装和注册 3. 本地网页发布3.1. Cpolar云端设置3.2 Cpolar本地设置 4. 公网访问测试5. 结语 1. 前言 想要成为一个合格的技术宅或程序员,自己搭建网站制作网页是绕…...
sawForceDimensionSDK安装,sigma7+ros
force dimension的sdk中没有关于ros,借助开源的sawForceDimensionSDK实现对于数据的封装和可视化,方便后续使用 链接: GitHub - jhu-saw/sawForceDimensionSDK 具体步骤: 安装qt和ros,官网下载Force Dimension SDK …...
全量知识系统问题及SmartChat给出的答复 之3
Q8. 进一步,请展示如何使用这些技术来衡量、评估或适应不可避免的不匹配的知识汤问题的更进一步的全面代码。 为了处理不可避免的不匹配的知识汤问题,我们可以引入一些技术方法来衡量、评估或适应这种情况。 下是一个更进一步的全面代码示例࿰…...
【常用的 SVN 命令及简要示例】
常用的 SVN 命令及简要示例,供您参考: 检出代码: svn checkout https://svn.example.com/project/trunk提交修改: svn commit -m "Commit message"更新代码: svn update创建分支: svn copy https://svn.example.com/project/trunk \https://sv…...
ISP代理是什么?怎么用?
在跨境出海业务中,代理IP对于您的在线任务至关重要,尤其是对于那些运行多个帐户的人来说。为您的帐户选择正确类型的代理对于确保帐户安全非常重要,劣质的IP容易使账号遭受封号风险。IPFoxy的多种代理IP类型应用范围各有侧重,其中…...
微服务之qiankun主项目+子项目搭建
主项目使用history,子项目使用hash模式 1. 下载安装"qiankun": "^2.10.13"2. 手动调用qiankun,使用vue脚手架搭建的项目1. 主项目配置(我使用的是手动调用乾坤,在指定页面显示内容)1. 要使用的页面中引入乾坤…...
双非二本找实习前的准备day2
学习目标: 每天2-3到简单sql(刷完即止),每天复习代码随想录上的题目3道算法(时间充足可以继续),背诵的八股的问题也在这里记录了 今日碎碎念: SQL有些题用到的知识感觉不会出现在…...
快速搭建宠物医院服务小程序的步骤,无需编程经验
如果你是一家宠物医院或者宠物服务机构,想要拥有一款方便用户预约、查询信息的小程序,那么乔拓云网提供的轻应用小程序是你的不二选择。下面将为你详细介绍如何轻松打造宠物医院服务小程序。 1. 进入乔拓云网后台,点击【轻应用小程序】中的【…...
YSYX学习记录(八)
C语言,练习0: 先创建一个文件夹,我用的是物理机: 安装build-essential 练习1: 我注释掉了 #include <stdio.h> 出现下面错误 在你的文本编辑器中打开ex1文件,随机修改或删除一部分,之后…...
2.Vue编写一个app
1.src中重要的组成 1.1main.ts // 引入createApp用于创建应用 import { createApp } from "vue"; // 引用App根组件 import App from ./App.vue;createApp(App).mount(#app)1.2 App.vue 其中要写三种标签 <template> <!--html--> </template>…...
数据库分批入库
今天在工作中,遇到一个问题,就是分批查询的时候,由于批次过大导致出现了一些问题,一下是问题描述和解决方案: 示例: // 假设已有数据列表 dataList 和 PreparedStatement pstmt int batchSize 1000; // …...
中医有效性探讨
文章目录 西医是如何发展到以生物化学为药理基础的现代医学?传统医学奠基期(远古 - 17 世纪)近代医学转型期(17 世纪 - 19 世纪末)现代医学成熟期(20世纪至今) 中医的源远流长和一脉相承远古至…...
Sklearn 机器学习 缺失值处理 获取填充失值的统计值
💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 使用 Scikit-learn 处理缺失值并提取填充统计信息的完整指南 在机器学习项目中,数据清…...
Neko虚拟浏览器远程协作方案:Docker+内网穿透技术部署实践
前言:本文将向开发者介绍一款创新性协作工具——Neko虚拟浏览器。在数字化协作场景中,跨地域的团队常需面对实时共享屏幕、协同编辑文档等需求。通过本指南,你将掌握在Ubuntu系统中使用容器化技术部署该工具的具体方案,并结合内网…...
怎么开发一个网络协议模块(C语言框架)之(六) ——通用对象池总结(核心)
+---------------------------+ | operEntryTbl[] | ← 操作对象池 (对象数组) +---------------------------+ | 0 | 1 | 2 | ... | N-1 | +---------------------------+↓ 初始化时全部加入 +------------------------+ +-------------------------+ | …...
何谓AI编程【02】AI编程官网以优雅草星云智控为例建设实践-完善顶部-建立各项子页-调整排版-优雅草卓伊凡
何谓AI编程【02】AI编程官网以优雅草星云智控为例建设实践-完善顶部-建立各项子页-调整排版-优雅草卓伊凡 背景 我们以建设星云智控官网来做AI编程实践,很多人以为AI已经强大到不需要程序员了,其实不是,AI更加需要程序员,普通人…...
从零手写Java版本的LSM Tree (一):LSM Tree 概述
🔥 推荐一个高质量的Java LSM Tree开源项目! https://github.com/brianxiadong/java-lsm-tree java-lsm-tree 是一个从零实现的Log-Structured Merge Tree,专为高并发写入场景设计。 核心亮点: ⚡ 极致性能:写入速度超…...
【版本控制】GitHub Desktop 入门教程与开源协作全流程解析
目录 0 引言1 GitHub Desktop 入门教程1.1 安装与基础配置1.2 核心功能使用指南仓库管理日常开发流程分支管理 2 GitHub 开源协作流程详解2.1 Fork & Pull Request 模型2.2 完整协作流程步骤步骤 1: Fork(创建个人副本)步骤 2: Clone(克隆…...


