D3 二维图表的绘制系列(四)堆叠柱状图

D3 二维图表的绘制系列(七)堆叠面积图 上一篇: 基础折线图 https://blog.youkuaiyun.com/zjw_python/article/details/98210977 下一篇: 曲线图 https://blog.youkuaiyun.com/zjw_python/article/details/98201470 代码结构和初始化画布的Chart对象介绍,请先看 https://blog.youkuaiyun.com/zjw_python/articl... 阅读详情

上一篇: 多列柱状图 https://blog.youkuaiyun.com/zjw_python/article/details/98205614

下一篇: 横向柱状图 https://blog.youkuaiyun.com/zjw_python/article/details/98209333

代码结构和初始化画布的Chart对象介绍,请先看 https://blog.youkuaiyun.com/zjw_python/article/details/98182540

本图完整的源码地址: https://github.com/zjw666/D3_demo/tree/master/src/barChart/stackedBarChart

1 图表效果

在这里插入图片描述

2 数据

date,food,transportation,education
Mon,30,40,50
Tue,20,80,100
Wed,20,50,80
Thu,10,30,40
Fri,15,20,35
Sat,10,30,70
Sun,20,50,60

3 关键代码

导入数据

d3.csv('./data.csv', function(d){
   
   
    return {
   
   
        date: d.date,
        food: +d.food,
        transportation: +d.transportation,
        education: +d.education
    };
}).then(function(data){
   
   
.....

配置一些样式参数

/* ----------------------------配置参数------------------------  */
const config = {
   
   
        barPadding: 0.15,
        margins: {
   
   top: 80, left: 80, bottom: 50, right: 80},
        textColor: 'black',
        gridColor: 'gray',
        tickShowGrid: [60, 120, 180],
        title: '堆叠直方图',
        hoverColor: 'white',
        animateDuration: 1000
    }

尺度转换和布局函数定义,堆叠柱状图使用d3.stack布局,其能自动布局计算,返回各分块上下边界的y值

/* ----------------------------尺度转换------------------------  */
    chart.scaleX = d3.scaleBand()
                    .domain(data.map((d) => d.date))
                    .range([0, chart.getBodyWidth()])
                    .padding(config.barPadding);
    
    chart.scaleY = d3.scaleLinear()
                    .domain([0, d3.max(data.map((d) => d.food + d.transportation + d.education))])
                    .range([chart.getBodyHeight(), 0])
    
    chart.stack = d3.stack()
                    .keys(['food', 'transportation', 'education'])
                    .order(d3.stackOrderAscending)
                    .offset(d3.stackOffsetNone);

渲染柱形,经过stack函数处理后,就可以根据返回的布局信息,确定矩形的坐标和高度


        
D3 二维图表的绘制系列(一)介绍 1 介绍 D3 (或者叫 D3.js )是一个基于 web 标准的 JavaScript 可视化库. D3 可以借助 SVG, Canvas 以及HTML 将你的数据生动的展现出来. D3 结合了强大的可视化交互技术以及数据驱动 DOM 的技术,让你可以借助于现代浏览器的强大功能自由的对数据进行可视化 学习了d3一个多月,通过绘制一些简单的二维图表,总算入门了d3。强烈推荐《D3数据可视化实战... 阅读详情

相关推荐

MATLAB | 打造伪3D柱状图的进阶技巧与实战应用

本文详细介绍了在MATLAB中创建伪3D柱状图的进阶技巧与实战应用。通过光照模拟算法、曲面网格构建和视觉深度控制等关键技术,实现具有立体感的二维图形渲染,适用于科研绘图、交互式应用等多种场景。文章还提供了基础绘制方法、高级定制技巧和性能优化策略,帮助用户高效生成专业级可视化效果。

weixin_29035405的博客 359

数据可视化工具汇总

Three.js是一个基于WebGL的JavaScript库,它简化了在Web浏览器中创建和展示三维图形的过程。Three.js拥有活跃的社区和众多的第三方插件,如GLTFLoader、OrbitControls等,提供了丰富的功能和扩展性。VTK是一款免费开放的软件工具,用于3D图形、建模、图像处理、科学数据可视化和其他信息可视化。

duansamve的博客 1333

D3.js-Diverging-Stacked-Bar-Chart:使用 D3.js 绘制发散堆积条形图

发散堆积条形图 我们创建了一个发散堆积条形图来绘制 5 点李克特量表。 有很多方法可以绘制李克特量表,但根据,发散堆积条形图是最好的,我同意。 我用过 。 Robbins & Heiberger 还有一个。 结果可以在看到。 我还使用将 svg 渲染到画布元素。 用于具有“另存为”功能。

d3js绘制多系统柱形图

d3js 多系统柱形图

ControlCAN.dll开发适配USBCAN_E/2E_U设备

摘要:本文提供了USBCAN_E/2E_U设备的配置指南:1)安装专用驱动;2)获取最新的ControlCAN.dll文件;3)修改VCI调用顺序,新增VCI_SetReference函数设置波特率;4)使用工具计算波特率配置值,并给出了常见波特率对应的代码参考值(如500K对应0x060007)。配置过程强调使用特定工具计算精确的波特率参数,并提供了相关软件下载链接。

weixin_43969033的博客 390

SageMath下载与安装

SageMath的下载与安装

旺旺的碎冰冰~的博客 7495

数据库系统概论课后习题答案(第五版 王珊、萨师煊)

第1章 绪论 1 .试述数据、数据库、数据库系统、数据库管理系统的概念。 答: ( l )数据( Data ) :描述事物的符号记录称为数据。数据的种类有数字、文字、图形、图像、声音、正文等。数据与其语义是不可分的。解析在现代计算机系统中数据的概念是广义的。早期的计算机系统主要用于科学计算,处理的数据是整数、实数、浮点数等传统数学中的数据。现代计算机能存储和处理的对象十分广泛,表

早知晓的博客 11万+

【Linux】Petalinux使用QSPI FLASH引导启动

1. 预分配Flash空间使用Flash引导Petalinux做的系统,也有进阶的做法。部分图片和经验来源于网络,若有侵权麻烦联系我删除,主要是做笔记的时候忘记写来源了,做完笔记很久才写博客。1. 预分配Flash空间根据生成的bit文件大小估算BOOT.BIN文件的大小,为Flash大概分配四个分区:boot、bootenv、kernel、bootscr,分别存放BOOT.BIN文件、u-boot的环境变量、内核文件(image.ub/zImage/uImage等)、启动脚本boot.scr。

Tesseract_9527的博客 3375

高通camx hal进程dump日志分析四:Node DumpDebugInfo原理分析

摘要: 本文讲解了高通Camx架构中DumpDebugInfo的原理,重点分析了Node组件的DumpDebugInfo()方法。该方法会输出Node自身调试信息,并调用DumpFenceErrors()接口输出Fence错误信息。具体包括:检查请求队列状态、输出未完成请求的元数据/完成状态/未处理Fence数量等关键信息,以及Fence错误原因(如延迟、未触发、结果失败等)。通过代码注释详细解析了各字段含义,为后续分析Dump异常日志提供理论基础。

783

学Simulink——基于Simulink的固态变压器(SST)多级协同控制​

本文介绍了基于Simulink的固态变压器(SST)多级协同控制系统设计与仿真方法。SST作为智能电网关键设备,包含AC-DC整流、DC-DC隔离和DC-AC逆变三级变换器。针对级间耦合问题,提出了能量-功率协同控制策略,通过纵向解耦和横向联动实现稳定运行。详细演示了在Simulink中搭建三级主电路、设计协同控制器(含电网定向控制、功率前馈和虚拟惯性控制)的全过程,并通过负载突变测试验证了系统动态性能(直流母线电压波动<2%)。最后给出了工程部署建议,包括数字控制延时补偿、启动序列设计和代码自动生成

xiaoheshang_123的博客 205

图神经网络实战(25)——基于A3T-GCN预测交通流量

本节重点讨论了使用 TGNN 进行交通预测任务。首先,我们介绍了 PeMS-M 数据集,并将其从表格数据转换为具有时间信号的静态图数据集。在实践中,我们根据输入距离矩阵创建了加权邻接矩阵,并将交通速度转换为时间序列。最后,我们构建了 A3T-GCN 模型,这是一个专为交通预测设计的 T-GNN 模型,并将结果与两个基线模型进行了比较,验证了模型的预测结果。

盼小辉丶的博客 8591

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

上一篇: D3 二维图表的绘制系列(三)多列柱状图
下一篇: D3 二维图表的绘制系列(五)横向柱状图
PAT-python-zjw
博客等级 码龄10年 381粉丝 408原创
评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值