【 D3.js 高级系列 — 3.0 】 堆栈图

本文详细介绍了如何使用D3.js实现堆栈图,包括数据处理、堆栈布局的运用及坐标轴、颜色标签的设置,展示了从数据到可视化的完整过程。堆栈图适用于展示不同类别数据的叠加关系,文中通过实例解释了如何为堆栈图添加颜色标签,以便清晰地标识各个数据层的含义。
摘要由CSDN通过智能技术生成

堆栈图布局(Stack Layout)能够计算二维数组每一数据层的基线,以方便将各数据层叠加起来。本文讲解堆栈图的制作方法。

301

先说说什么是堆栈图。

例如,有如下情况:

某公司,销售三种产品:个人电脑、智能手机、软件。

2005年,三种产品的利润分别为3000、2000、1100万。

2006年,三种产品的利润分别为1300、4000、1700万。

计算可得,2005年总利润为6100万,2006年为7000万。

如果要将2005年的利润用柱形表示,那么应该画三个矩形,三个矩形堆叠在一起。这时候就有一个问题:每一个矩形的起始y坐标是多少,高应该是多少。

输入数组,直接计算出上述问题的,就是堆栈图布局。


1. 数据

某公司销售个人电脑、智能手机、软件的数据如下:

var dataset = [
{ name: "PC" , 
		  sales: [	{ year:2005, profit: 3000 },
					{ year:2006, profit: 1300 },
					{ year:2007, profit: 3700 },
					{ year:2008, profit: 4900 },
					{ year:2009, profit: 700 }] },
		{ name: "SmartPhone" , 
		  sales: [	{ year:2005, profit: 2000 },
					{ year:2006, profit: 4000 },
					{ year:2007, profit: 1810 },
					{ year:2008, profit: 6540 },
					{ year:2009, profit: 2820 }] },
		{ name: "Software" , 
		  sales: [	{ year:2005, profit: 1100 },
					{ year:2006, profit: 1700 },
					{ year:2007, profit: 1680 },
					{ year:2008, profit: 4000 },
					{ year:2009, profit: 4900 }] }
    ];

dataset是一个数组,数组的每一项是一个对象,对象里含有name和sales。name是产品名、sales是销售情况。sales也是一个数组,每一项也是对象,对象里包含有year表示年份、profit表示利润。

 你手头有一些数据,想做成漂亮的表放到网站上?好主意,通过浏览器来跨平台实现数据可视化是正确的选择。什么,你还想让表能够响应用户操作?没问题,交互式表比静态片更能吸引人去探究本源。好啦,要生成通过浏览器展示的动态表,目前热门的Web数据可视化库——D3。   《灵程序设计丛书·数据可视化实战:使用D3设计交互式表》这本书很有意思,而且对读者要求不高。不需要知道什么是数据可视化,也不用有太多Web开发背景就能看懂它。不信?翻一翻就知道这是一本既好玩又实用的动手指南啦!看完这本书你会怎么样呢?   掌握必要的HTML、CSS、JavaScript和SVG基础知识;   学会基于数据在网页里生成元素和为它们设置样式的技巧;   能够生成条形、散点、饼、堆叠条形和力导向;   使用平滑的过渡动画来展示数据的变化;   赋予表动态交互能力,响应用户从不同角度探索数据的请求;   收集数据和创建自定义的地;   另外,《灵程序设计丛书·数据可视化实战:使用D3设计交互式表》100多个代码示例都可以在线浏览! 【电子版来自互联网,仅供预览及学习交流 使用,不可用于商业用途,如有版权问题,请联系删除,支持正版,喜欢的 请购买正版书籍: https://e.jd.com/30336473.html】
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值