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

可视化绘图技巧100篇进阶篇(九)-三维百分比堆积条形图(3D Stacked Percentage Bar Chart)

目录

前言

适用场景

绘图工具及代码实现   

帆软

实现思路

方案一:使用计算指标

上传数据

添加组件

生成图表

添加计算字段

生成分区柱形图

生成百分比堆积条形图

 美化图表

设置标签

设置颜色

效果查看

PC 端

移动端

方案二:使用自助数据集

上传数据

添加组件

生成图表

美化图表

设置标签

设置颜色

Origin

PPT

 echarts

 Tableau


 

前言

三维百分比堆积条形图(3D Stacked Percentage Bar Chart)是一种数据可视化图表,用于展示多个类别在不同组内的百分比关系。它在三维空间中以条形的高度表示数据的百分比,每个条形又被分为不同的堆积组,每个组内的不同类别以不同的颜色表示。

适用场景

三维百分比堆积条形图适用于展示多个类别在不同组内的百分比分布,特别适合比较组内各类别的相对比例。它可以在可视化中显示随时间或其他维度的变化,有助于发现趋势。
优势:三维百分比堆积条形图能够清楚地显示不同类别在各组中所占的比例,突出比较。适用于展示随时间或其他维度变化的数据,帮助观察趋势和模式。
劣势:由于堆积和三维效果可能会导致视觉混淆和误解,不适合显示大量数据。此外,图表的复杂性可能影响理解,因此需要慎重选择使用场景。

绘图工具及代码实现   

帆软

制造业有不同的产线,产线上有不同的车间,每个车间生产不同质量等级的产品。当需要根据产线、产线下的车间分类,统计不同质量等级的产品,用于判断不同生产线、车间的生产状况时,可以通过多系列百分比堆积柱形图实现。如下图所示:

 

14.png

实现思路

交换分区柱形图横纵轴的字段,并开启堆积。

方案一:使用计算指标

上传数据

1)管理员进入系统,点击「我的分析」,选中某个文件夹,点击「新建分析主题」。如下图所示:

堆积面积图-1.jpg

2)点击「本地Excel文件>上传数据」,上传表数据。如下图所示:

堆积面积图-2.jpg

3)上传后,点击「确定」按钮。如下图所示:

多系列百分比堆积条形图-1.jpg

添加组件

点击左下角「组件」按钮。如下图所示:

多系列百分比堆积条形图-2.jpg

生成图表

添加计算字段

添加计算字段,命名为「计算指标」,值为SUM_AGG(指数值)/TOTAL(SUM_AGG(指数值),1,"sum")。如下图所示:

注:此处的「指数值」字段需要在字段栏选择填入公式,手动输入无效。

多系列百分比堆积条形图-3.jpg

公式介绍如下表所示:

公式说明备注
SUM_AGG(指数值)根据维度字段,返回「指数值」的汇总求和

SUM_AGG函数

TOTAL函数

TOTAL(SUM_AGG(指数值),1,"sum")根据维度字段对「指数值」进行组内汇总求和
生成分区柱形图

在图表类型下选择「分区柱形图」,将「ENO2」和「ChamberNumber」字段(即产线与车间)拖入横轴,「计算指标」字段拖入纵轴。如下图所示:

多系列百分比堆积条形图-4.jpg

生成百分比堆积条形图

1)设置「计算指标」字段数值格式为百分比。步骤如下图所示:

1658481490409202.jpg

2)交换横纵轴字段。如下图所示:

多系列百分比堆积条形图-6.jpg

3)开启堆积。步骤如下图所示:

多系列百分比堆积条形图-7.jpg

4)将「等级」字段拖入颜色属性栏,此时每个车间按照质量等级显示指数值,不同等级显示的颜色不同。如下图所示:

多系列百分比堆积条形图-8.jpg

 美化图表

设置标签

将「计算指标」字段拖入标签栏,点击「标签」栏,设置标签「居中」显示。如下图所示:

多系列百分比堆积条形图-9.jpg

设置颜色

点击「颜色」栏,配色方案选择「清新多彩」。如下图所示:

多系列百分比堆积条形图-10.jpg

效果查看

新建仪表板,并将组件拖入到仪表板中。

PC 端

如下图所示:

14.png

移动端

App 及 HTML5 端效果如下图所示:

1658822979766733.jpg

方案二:使用自助数据集

上传数据

1)复制「作图数据」表,并重命名表名为「百分比」,点击编辑按钮。如下图所示:

1658482311830138.jpg

2)字段全选。如下图所示:

1658482505566886.jpg

3)对数据进行分组汇总。如下图所示:

1658482811525217.jpg

4)组内求和,求每个车间下的指数值的和。如下图所示:

1658482938146705.jpg

5)新增列,求「指数值」在组内的占比,如下图所示:

多系列百分比堆积条形图-17.jpg

6)点击「保存并更新」按钮。如下图所示:

多系列百分比堆积条形图-18.jpg

添加组件

点击左下角「组件」按钮。如下图所示:

多系列百分比堆积条形图-19.jpg

生成图表

1)切换数据表为「百分比」。在图表类型下选择「分区柱形图」,将「ENO2」和「ChamberNumber」字段(即产线与车间)拖入横轴,「占比」字段拖入纵轴。如下图所示:

多系列百分比堆积条形图-20.jpg

2)设置「占比」的数值格式为百分比。如下图所示:

多系列百分比堆积条形图-21.jpg

3)交换横纵轴字段。如下图所示:

多系列百分比堆积条形图-22.jpg

4)「占比」字段开启堆积。如下图所示:

多系列百分比堆积条形图-23.jpg

5)将「等级」字段拖入颜色栏。如下图所示:

1658710881525639.jpg

美化图表

设置标签

将「占比」字段拖入标签栏,点击「标签」栏,设置标签「居中」显示。如下图所示:

多系列百分比堆积条形图-25.jpg

设置颜色

点击「颜色」栏,配色方案选择「清新多彩」。如下图所示:

多系列百分比堆积条形图-26.jpg

Origin

1. 打开软件,输入数据

图片

2. 计算性别的百分比,直接在F(x)输入公式:D/C*100,即可出现数值

图片

3. 选中A-D列数据,选择3D百分比堆积条状图

图片

4. 基本的图形就出来了

图片

5. 双击柱子,更改为圆柱形

图片

6.设置自己喜欢的颜色,填充颜色和边框颜色一致即可

图片

7.这是我使用的两个颜色

图片

8.最后,我们给他加上标签,也就是我们刚才计算的最后一列数据

图片

9.添加图例

图片

10.右击图例-图例-更新图例

图片

11.选择重构

图片

12.最终更改一下纵坐标标签,图形就完成了

图片

PPT

  1. 1. 首先,请大家在电脑中找到“PPT”图标,点击进入主界面,然后新建一个空白文档。

  2. 2. 第二步,如图所示,请大家依次点击【插入】—【图表】—【柱形图】—【三维百分比堆积柱形图】选项。

  3. 3.第三步,完成上一步后,请大家选择新界面中的【确定】,屏幕中将会出现如图所示的默认样式图表。

  4. 4. 在图表上点击鼠标右键,点击【设置图表区域格式】。

  5. 5. 第五步,我们需要点击屏幕右边的【图表选项】——【三维旋转】,接着请依次修改一下【X旋转】、【Y旋转】和【深度】的数值,大家可以默认勾选【直角坐标轴】和【自动缩放】。

  6. 6. 第六步,如图所示即为三维效果更强的图表,是不是很直观形象?

  7. 7. 最后,请大家再次对图表进行深入的简化和美化,我们可以调整柱体颜色,还能给背景墙和基座设置灰色,接着请把网格和坐标轴数字去掉,此外,我们需要设置图表字体和标题字号,并且添加如图所示的数据标签,最后,只需给绘图区设置灰色即可。

 echarts

条形图实际上范围很广,它是以横置图形展示数据的一种图表类型。百分比堆积条形图即以堆积条形图的形式来显示多个数据序列,但是每个堆积元素的累积比例始终总计为 100%。它主要用于显示一段时间内的多项数据占比情况。

 

 

获取到数据后,将tooltip中的formatter修改

tooltip: { trigger: 'axis', axisPointer: { type: 'shadow' },formatter: function(params) {//这里就是控制显示的样式let relVal = params[0].name;let value = 0;for (let i = 0, l = params.length; i < l; i++) {value += params[i].value;}for (let i = 0, l = params.length; i < l; i++) {//marker 就是带颜色的小圆圈 seriesName x轴名称  value  y轴值 后面就是计算百分比relVal += '<br/>'+ params[i].marker + params[i].seriesName + '  : 数量 : '+ parseFloat(params[i].value) +', 百分比 : ' + (100 *parseFloat(params[i].value) / parseFloat(value)).toFixed(2) + "%";}return relVal;},},

 

百分比堆叠条形图将多个数据集的条形彼此叠加显示,适合用来显示大类别如何细分为较小的类别,以及每部分与总量之间的关系。在展示不同的数据集时,可以按照数值百分比两种形式进行展示,本文介绍的堆叠条形图采用的是百分比的形式,如果希望使用数值的展示形式,可以使用堆叠条形图。

在图表中,X轴字段为纵坐标,反映了条形的组成部分,Y轴字段为横坐标,反映了每一个条形部分的长度。

百分比堆叠条形图的字段设置有以下两种情形:

①当X轴为一个字段,Y轴为一个字段时,如图:

上图中所用示例数据如下:

 

②当X轴为一个字段,Y轴为多个字段时,如图:

上图中所用示例数据如下:

 

可以看到,X轴使用了“星期”字段,Y轴分别使用了“男生占比”和“女生占比”两个字段,在上图的示例中可以清楚看到不同日期间男生和女生占比的对比情况。

从上面两个例子中,我们可以总结出百分比堆积条形图的两个特点:

①百分比堆叠条形图适用于展示截面类的数据;

②百分比堆叠条形图适用于展示比例信息,而不展示具体的数值。

因此,百分比堆积条形图在关于男女差异的统计中较为常用。它不仅用于国家统计,也可以广泛用于企业用户调查中。

 Tableau

 

虽然这个图形比较简单,但我们还是需要先分析一下整个图表的结构和所需要的视图数据。如图 8‑17所示,要制作这个百分比条形图,视图数据分别需要“类别”、 “利润率”和“目标”三组数据,其中,“类别”是维度字段同时作为标题(表头)使用,“利润率”和“目标”是度量字段,作为坐标轴使用,标记类型都是条形图。

 

基于这样的分析后,我们就会很自然的想到使用双轴绘制2个度量值的图表。“类别”和“利润率”是数据集中自带的字段,而目标字段中的100%这个值数据集中并没有出现,这种情况下通常可以双击列功能区,手动添加一个即席计算字段“AVG(1)”,这样就会在视图数据中增加目标值100%,同时形成一个长度为1(100%)的条形图。

 

对于两个度量值的图表来说,除了使用双轴的方案以外,还可以考虑使用度量值和度量名称的方式实现。此时可以在图 8‑18的基础上,直接拖动任意一个度量值到另一个度量值形成的坐标轴上,就可以自动形成度量值和度量名称(图 8‑19)。

 

这里,我们需要在菜单栏的“堆叠标记”中选择关闭,以免条形图沿着坐标轴的方向叠加到一起。最后,使用度量名称标记颜色,利润率显示标签,就可以完成图形的制作。

 

在制作的过程中我们就会发现,此种方案标签只能选择左对齐,使用其他方式会显示多个标签值。如果希望标签值与图 8‑18保持一致的话,仍然可以考虑双轴的方案。在列功能区增加一个“利润率”字段,与“度量值”字段形成双轴。“利润率”的标记类型选择“甘特条形图”,颜色调整为透明,标签对齐方式选择“中部右侧”,这样就达到了与图 8‑18一样的效果。

以上两种方案,虽然实现方式不同但底层逻辑一致,都是“AVG(1)”形成的条形图在下,“利润率”形成的条形图在上,这样的方式更易于被普通学习者理解。

其实我们还可以换一种思路来认识这个图表,一个完整的百分比条形图也可以由“利润率”和“100%-利润率”两个条形图堆叠在一起形成,这里就不是图层排序的概念,而是转为了图形堆叠。如图 8‑22所示,当在菜单栏的“堆叠标记”中选择开启后,两个条形图就堆积在一起,形成了完整的百分比条形图。此时,我们再结合制作图 8‑20的过程中的关闭堆叠效果,就会发现开启堆叠效果,条形图会沿轴方向依次排列;关闭堆叠效果,条形图都会从0轴开始,这就是导致需要使用不同的计算字段的原因。

 

最后在添加“利润率”标签时,我们还可以使用参考线替换上面提到的双轴方式。如图 8‑23所示,在度量值形成的坐标轴上添加参考线,线选择无表示不显示线,参考线标签显示每个单元格的利润率值,编辑参考线颜色、对齐方式、阴影后,依然完成了同样的百分比条形图制作。

 

相关文章:

可视化绘图技巧100篇进阶篇(九)-三维百分比堆积条形图(3D Stacked Percentage Bar Chart)

目录 前言 适用场景 绘图工具及代码实现 帆软 实现思路 方案一&#xff1a;使用计算指标 上传数据 添加组件 生成图表 添加计算字段 生成分区柱形图 生成百分比堆积条形图 美化图表 设置标签 设置颜色 效果查看 PC 端 移动端 方案二&#xff1a;使用自助数…...

js实现将文本转PDF格式并下载到本地

html里面需要引入jspdf.umd.min.js和FileSaver.js jspdf.umd.min.js&#xff1a;https://www.npmjs.com/package/jspdf FileSaver.js&#xff1a;https://download.csdn.net/download/weixin_45791806/87272893?spm1001.2014.3001.5503 同时项目的根部目录也需要引入SimHei.tt…...

Servlet+JDBC实战开发书店项目讲解第四篇:登录实现

ServletJDBC 实战开发书店项目讲解第四篇&#xff1a;登录注册实现 在本篇博客中&#xff0c;我们将继续讲解 ServletJDBC 实战开发书店项目。这次我们将重点讲解如何实现登录和注册功能。 1. 创建数据库表 首先&#xff0c;我们需要在数据库中创建两个表&#xff0c;一个用…...

HarmonyOS NEXT新能力,一站式高效开发HarmonyOS应用

2023年8月6日华为开发者大会2023&#xff08;HDC.Together&#xff09;圆满收官&#xff0c;伴随着HarmonyOS 4的发布&#xff0c;华为向开发者发布了汇聚所有最新开发能力的HarmonyOS NEXT开发者预览版&#xff0c;并分享了围绕“一次开发&#xff0c;多端部署” “可分可合&a…...

【Java从0到1学习】09 正则表达式

1. 正则表达式概述 在编写处理字符串的程序或网页时&#xff0c;经常会有查找符合某些复杂规则的字符串的需要。正则表达式就是用于描述这些规则的工具。换句话说&#xff0c;正则表达式就是记录文本规则的代码。 正则表达式&#xff0c;又称正规表示法、常规表示法&#xff…...

log4j:WARN No appenders could be found for logger问题

本文将idea场景下的使用。 IDEA中&#xff0c;将配置文件命名为log4j.properties&#xff08;该命名才会被自动加载&#xff09;&#xff0c; 并放到某个目录下&#xff08;通常放到resources目录&#xff09;&#xff0c;并在resources上右键&#xff0c;找到Mark Directory a…...

【Java】批量生成条形码-itextpdf

批量生成条形码 Controller ApiOperation("商品一览批量生成商品条形码")PostMapping("/batchGenerateProdBarCode")public void batchGenerateProdBarCode(RequestBody ProductListCondition productListCondition,HttpServletResponse response){import…...

SpringBoot登录、退出、获取用户信息的session处理

1、登录方法&#xff1a;login PostMapping("/user/login")public ResponseVo<User> login(Valid RequestBody UserLoginForm userLoginForm,HttpSession session) {ResponseVo<User> userResponseVo userService.login(userLoginForm.getUsername(), …...

【软件测试】随笔系统测试报告

博主简介&#xff1a;想进大厂的打工人博主主页&#xff1a;xyk:所属专栏: 软件测试 随笔系统采用 SSM 框架前后端分离的方法实现&#xff0c;本文主要针对功能&#xff1a;登录&#xff0c;注册&#xff0c;注销&#xff0c;写随笔&#xff0c;删除随笔&#xff0c;随笔详情页…...

vue中使用html2canvas+jsPDF实现pdf的导出

导入依赖 html2canvas依赖 npm install html2canvasjspdf依赖 npm install jspdfpdf导出 以导出横向&#xff0c;A4大小的pdf为例 规律&#xff1a;1. html2canvas 中&#xff0c;在保持jsPDF中的宽高不变的情况下&#xff0c;设置html2canvas中的 width 和 height 值越小&a…...

Linux学习之firewallD

systemctl status firewalld.service查看一下firewalld服务的状态&#xff0c;发现状态是inactive (dead)。 systemctl start firewalld.service启动firewalld&#xff0c;systemctl status firewalld.service查看一下firewalld服务的状态&#xff0c;发现状态是active (runni…...

【JS学习】Object.assign 用法介绍

Object.assign 是ES6中的一个方法。该方法能够实现对象的浅复制以及对象合并。Object.assign 并不会修改目标对象本身&#xff0c;而是返回一个新的对象&#xff0c;其中包含了所有源对象的属性。 例1 2个对象合并 const target { a: 1, b: 2 }; const source { b: 3, c: 4…...

【uni-app报错】获取用户收货地址uni.chooseAddress()报错问题

chooseAddress:fail the api need to be declared in …e requiredPrivateInf 原因&#xff1a; 小程序配置 / 全局配置 (qq.com) 解决&#xff1a; 登录小程序后台申请接口 按照流程申请即可 在项目根目录中找到 manifest.json 文件&#xff0c;在左侧导航栏选择源码视图&a…...

机器学习、cv、nlp的一些前置知识

为节省篇幅&#xff0c;不标注文章来源和文章的问题场景。大部分是我的通俗理解。 文章目录 向量关于向量的偏导数&#xff1a;雅可比矩阵二阶导数矩阵&#xff1a;海森矩阵随机变量随机场伽马函数beta分布数学术语坐标上升法协方差训练集&#xff0c;验证集&#xff0c;测试集…...

Steam 灵感的游戏卡悬停效果

先看效果&#xff1a; 再看代码&#xff08;查看更多&#xff09;&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Steam 灵感的游戏卡悬停效果</title><style>* {margin: …...

[Openwrt]一步一步搭建MT7981A uboot、atf、openwrt-21.02开发环境操作说明

安装ubuntu-18.04 软件安装包 ubuntu-18.04-desktop-amd64.iso 修改ubuntu管理员密码 sudo passwd [sudo] password for w1804: Enter new UNIX password: Retype new UNIX password: passwd: password updated successfully 更新ubuntu源 备份源 sudo cp /etc/apt/so…...

Unity C# 之 Azure 微软SSML语音合成TTS流式获取音频数据以及表情嘴型 Animation 的简单整理

Unity C# 之 Azure 微软SSML语音合成TTS流式获取音频数据以及表情嘴型 Animation 的简单整理 目录 Unity C# 之 Azure 微软SSML语音合成TTS流式获取音频数据以及表情嘴型 Animation 的简单整理 一、简单介绍 二、实现原理 三、注意事项 四、实现步骤 五、关键代码 一、简…...

安全学习DAY16_信息打点-CDN绕过

信息打点-CDN绕过 文章目录 信息打点-CDN绕过本节思维导图相关链接&工具站&项目工具前置知识&#xff1a;CDN配置&#xff1a;配置1&#xff1a;加速域名-需要启用加速的域名配置2&#xff1a;加速区域-需要启用加速的地区配置3&#xff1a;加速类型-需要启用加速的资源…...

genism word2vec方法

文章目录 概述使用示例模型的保存与使用训练参数详解&#xff08;[原链接](https://blog.csdn.net/weixin_44852067/article/details/130221655)&#xff09;语料库训练 概述 word2vec是按句子来处理的Sentences(句子们) 使用示例 from gensim.models import Word2Vec #sent…...

vue3自定义样式-路由-axios拦截器

基于vue,vite和elementPlus 基于elementPlus自定义样式 history模式的路由 在根目录配置jsconfig.json&#xff0c;添加json的配置项。输入自动联想到src目录&#xff0c;是根路径的别名拦截器 如果存在多个接口地址&#xff0c;可以配置多个axios实例 数据持久化之后&#x…...

椭圆曲线密码学(ECC)

一、ECC算法概述 椭圆曲线密码学&#xff08;Elliptic Curve Cryptography&#xff09;是基于椭圆曲线数学理论的公钥密码系统&#xff0c;由Neal Koblitz和Victor Miller在1985年独立提出。相比RSA&#xff0c;ECC在相同安全强度下密钥更短&#xff08;256位ECC ≈ 3072位RSA…...

从零实现富文本编辑器#5-编辑器选区模型的状态结构表达

先前我们总结了浏览器选区模型的交互策略&#xff0c;并且实现了基本的选区操作&#xff0c;还调研了自绘选区的实现。那么相对的&#xff0c;我们还需要设计编辑器的选区表达&#xff0c;也可以称为模型选区。编辑器中应用变更时的操作范围&#xff0c;就是以模型选区为基准来…...

安宝特方案丨XRSOP人员作业标准化管理平台:AR智慧点检验收套件

在选煤厂、化工厂、钢铁厂等过程生产型企业&#xff0c;其生产设备的运行效率和非计划停机对工业制造效益有较大影响。 随着企业自动化和智能化建设的推进&#xff0c;需提前预防假检、错检、漏检&#xff0c;推动智慧生产运维系统数据的流动和现场赋能应用。同时&#xff0c;…...

抖音增长新引擎:品融电商,一站式全案代运营领跑者

抖音增长新引擎&#xff1a;品融电商&#xff0c;一站式全案代运营领跑者 在抖音这个日活超7亿的流量汪洋中&#xff0c;品牌如何破浪前行&#xff1f;自建团队成本高、效果难控&#xff1b;碎片化运营又难成合力——这正是许多企业面临的增长困局。品融电商以「抖音全案代运营…...

三体问题详解

从物理学角度&#xff0c;三体问题之所以不稳定&#xff0c;是因为三个天体在万有引力作用下相互作用&#xff0c;形成一个非线性耦合系统。我们可以从牛顿经典力学出发&#xff0c;列出具体的运动方程&#xff0c;并说明为何这个系统本质上是混沌的&#xff0c;无法得到一般解…...

微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据

微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据 Power Query 具有大量专门帮助您清理和准备数据以供分析的功能。 您将了解如何简化复杂模型、更改数据类型、重命名对象和透视数据。 您还将了解如何分析列&#xff0c;以便知晓哪些列包含有价值的数据&#xff0c;…...

算法岗面试经验分享-大模型篇

文章目录 A 基础语言模型A.1 TransformerA.2 Bert B 大语言模型结构B.1 GPTB.2 LLamaB.3 ChatGLMB.4 Qwen C 大语言模型微调C.1 Fine-tuningC.2 Adapter-tuningC.3 Prefix-tuningC.4 P-tuningC.5 LoRA A 基础语言模型 A.1 Transformer &#xff08;1&#xff09;资源 论文&a…...

【分享】推荐一些办公小工具

1、PDF 在线转换 https://smallpdf.com/cn/pdf-tools 推荐理由&#xff1a;大部分的转换软件需要收费&#xff0c;要么功能不齐全&#xff0c;而开会员又用不了几次浪费钱&#xff0c;借用别人的又不安全。 这个网站它不需要登录或下载安装。而且提供的免费功能就能满足日常…...

[ACTF2020 新生赛]Include 1(php://filter伪协议)

题目 做法 启动靶机&#xff0c;点进去 点进去 查看URL&#xff0c;有 ?fileflag.php说明存在文件包含&#xff0c;原理是php://filter 协议 当它与包含函数结合时&#xff0c;php://filter流会被当作php文件执行。 用php://filter加编码&#xff0c;能让PHP把文件内容…...

UE5 音效系统

一.音效管理 音乐一般都是WAV,创建一个背景音乐类SoudClass,一个音效类SoundClass。所有的音乐都分为这两个类。再创建一个总音乐类&#xff0c;将上述两个作为它的子类。 接着我们创建一个音乐混合类SoundMix&#xff0c;将上述三个类翻入其中&#xff0c;通过它管理每个音乐…...