D3 二维图表的绘制系列(二十)河流图

pyecharts丨将主题的演变嵌入时间长河中——主题河流图 主题河流图 终于是好像比较高级的图了hhhh但其实早在2008年都有比较出色的运用了, 2008年2月,《纽约时报》发布了一个最典型、最著名的河流图的例子《电影的衰退和流动:过去20年的电影票房收入》,描述了从1986年1月到2008年2月期间,所有电影的上映时间以及期间的周票房变化。在这个河流图中,流形状的宽度代表了某部电影的周票房,流形状的起始是由电影的上映时间决定的。颜色由电影的总票房决定,票房就是电影的“附加定量”,颜色越深代表了电影最终票房越高。 那么应该怎么去看这个看上去花里胡哨的河流图呢 阅读详情

上一篇: 封闭图 https://blog.youkuaiyun.com/zjw_python/article/details/98591118

下一篇: 仪表盘图 https://blog.youkuaiyun.com/zjw_python/article/details/98596174

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

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

1 图表效果

在这里插入图片描述

2 数据

date,food,transportation,education,house,clothes
2019-06-01,30,40,50,56,30
2019-06-02,20,80,56,42,60
2019-06-03,20,50,80,57,54
2019-06-04,10,30,40,36,62
2019-06-05,15,20,35,50,43
2019-06-06,10,30,70,73,34
2019-06-07,20,56,60,37,20
2019-06-08,15,20,65,46,25
2019-06-09,40,34,43,64,45
2019-06-10,36,46,60,75,62
2019-06-11,25,32,40,60,38
2019-06-12,10,18,32,34,55
2019-06-13,34,23,42,43,32
2019-06-14,30,46,25,25,23
2019-06-15,22,62,52,20,26
2019-06-16,17,45,42,10,21
2019-06-17,13,50,72,21,30
2019-06-18,10,34,65,34,20
2019-06-19,25,34,56,44,15
2019-06-21,15,14,32,56,32
2019-06-22,30,32,42,24,42
2019-06-23,20,25,23,32,23
2019-06-24,5,14,52,42,10
2019-06-25,18,36,25,36,12
2019-06-26,34,40,30,20,22
2019-06-27,12,32,34,54,34
2019-06-28,10,50,24,68,20
2019-06-29,26,55,32,35,36
2019-06-30,21,40,20,53,30

3 关键代码

导入数据

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

一些样式参数配置

 const config = {
   
   
        margins: {
   
   top: 80, left: 80, bottom: 50, right: 80},
        textColor: 'black',
        gridColor: 'gray',
        title: '基础河流图',
        animateDuration: 1000
    }

尺度转换,河流图的样子与堆叠面积图有几分类似,两者都运用d3.stack进行布局,区别在于,河流图堆叠的基准线不再是X轴。虽然布局算法不同,但我们只需要稍微更改一下配置选项即可,非常简单

/* ----------------------------尺度转换------------------------  */
    chart.scaleX = d3.scaleTime()
                    .domain([new Date(data[0].date), new Date(data[data.length-1].date)])
                    .range([0, chart.getBodyWidth()]);

    chart.scaleY = d3.scaleLinear()
                    .domain([0, (Math.floor((
                        d3.max(data, (d) => d.house) +
                        d3.max(data, (d) => d.food) +
                        d3.max(data, (d) => d.education) +
                        d3.max(data, (d) => d.transportation) +
                        d3.max(data, (d) => d.clothes)
                        )/10) + 1)*10])
                    .range([chart.getBodyHeight(), 0])

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

相关推荐

D3 二维图表的绘制系列(二十一)仪表盘图

上一篇: 河流图 https://blog.youkuaiyun.com/zjw_python/article/details/98492510 下一篇: 桑基图 https://blog.youkuaiyun.com/zjw_python/article/details/98201470 代码结构和初始化画布的Chart对象介绍,请先看 https://blog.youkuaiyun.com/zjw_python/article/...

zjw_python的博客 2886

使用dagre-d3做一个dag图(关系图)

dagre-d3插件github地址:https://github.com/dagrejs/dagre-d3csdn引入:<script src="https://d3js.org/d3.v4.min.js" charset="utf-8"></script> <script src="../dist/dagre-d3.js"></script&amp

无聊者进来逛逛 4万+

Python数据可视化 Pyecharts 制作 ThemeRiver 主题河流图

大家好,我是Mr数据杨。设想一下,基本设置就像各个国家的基础设施,将三个国家的总况一览无遗,这为了解三国整体情况做好铺垫。而坐标轴设置,就如同时间线,沿着时间轴展现出三国历史的进程,决定了整个图表的时间尺度。接下来是主题河流图数据项,如果说时间线是历史的舞台,那么数据项就是舞台上的主角。可以设定每个国家的领土扩张、人口变动、军事实力等各种因素,让这些因素在时间线上舞动,呈现出三国的动态变化。然后,Mr数据杨将带领大家深入举例。比如,当曹操一统北方时可以看到曹操领地的快速扩张。

Mr数据杨 4万+

pyras:用于河流分析的 Python 工具

PyRAS - 用于河流分析的 Python 描述 用于处理河流模型的 Python 套件。 目标 提供河流模型定义的抽象层和调用不同水力模型控制器的工具。 支持的模型(部分支持即将完成): HEC-RAS :HEC-RAS 控制器的 COM 接口的包装器。 (仅限窗户) 即将推出: HEC-RAS API :HEC-RAS 输入文件的高级解析器 API。 (跨平台) 要求 这个包依赖于 pywin32 来访问 HECRASController 接口。 此外,您需要安装 HEC-RAS 的工作版本。 当前支持包括版本 4.1.0 和 5.0.0。 安装 以下是最终的安装方式(现在不工作): 简单的方法: 安装 anaconda 发行版 在命令行输入: pip install pyfloods 艰难的方式: 安装Python 从下载 pywin32 安装程序并安装。 在

matlab画水深分布图

利用matlab读取水深数据,然后绘制水深分布图,分辨率为1分*1分。

D3.js-Demos-master.zip_d3_python

python书写 D3j后台服务,启动后可由本地服务获取D3例程

从零开始,用Cadence Virtuoso手把手仿真一个1.5V LDO(附完整电路与仿真脚本)

本文详细介绍了如何使用Cadence Virtuoso从零开始仿真一个1.5V LDO,包括环境准备、电路导入、Testbench构建、核心仿真类型分析以及高级调试技巧。通过完整的电路与仿真脚本,帮助读者掌握LDO设计与仿真的关键技术,提升电路设计能力。

weixin_31309419的博客 445

Pixhawk变砖自救指南:从DFU模式到固件重刷全流程(附2.4.8实测)

本文详细介绍了Pixhawk飞控变砖后的自救方法,从DFU模式进入、固件重刷到高级恢复技巧全流程。特别针对国产版本boot0引脚未引出的特殊情况提供了解决方案,帮助用户通过QGC或Mission Planner地面站工具恢复飞控功能,适用于2.4.8等常见固件版本。

weixin_29168813的博客 338

DRAM刷新refresh相关知识归类-基础小知识(三)

RAM每一位数据都是通过芯片内的一个小电容充电(或低电平)存储的。但随着时间的推移,电容逐渐失去电荷。为避免丢失存储的数据,必须定期刷新以将电荷(如果存在)恢复到其原始级别。此刷新过程包括读取每个位的值,然后将其写回。在此“刷新”期间,内存被占用,无法执行加载或存储位等正常操作。知道了应该这么做,但怎么去做以及有什么办法更有效率去做,就是接下来要整理的内容。

Paul 安的博客 1万+

String+CytoScape构建PPI网络

1.下载CytoScape Cytoscape是一款专业强大好用的物生信息分析软件,主要达用于专业的研究人员使用,软件主要适用于整合模块化网络和生物科学联系网络图的绘制,支持多种文件格式,导入后就可以直接进行编辑或者分析等操作了,除此之外,软件还提供了强大的编辑工具,支持添加相应的注释信息,软件基于java环境组件打造。 下载地址:https://cytoscape.org/ 因为软件基于java...

xiaobai1_1的博客 1万+

风控IV、AUC、KS python计算代码

df_temp:数据集,Y:是否逾期标签,feas_list:需要计算IV的 变量。2、 按月和不同Y 下的 IV计算。

暮雨听轩的专栏 1618

U8+ 新建账套

一、登录 账套主管:demo 对账套有修改权限,有账套库权限 系统管理员:admin 其他所有权限 二、新建账套 admin登录–>点击系统管理–>账套–>建立 选择了参照已有账套结转期初:就是上一个的期末数据作为这一次新表的期初数据 启用会计期一旦选择更改不了。 ...

茶茶很困i 3694

合并数组与非合并数组——SystemVerilog

合并型数组(packed): — 合并型数组可以实现连续的存储,赋值时不需要用 '{ }。 //合并型数组 bit [3] [7:0] b_pack // 表示3行 x 8列的数组,[3]是高维度(高维度),[7:0]是低维度(第一维) 数组中,数据排列为{b_pack[3],b_pack[2],b_pack[1],b_pack[0]},其中每个b_pack为8个bit; bit是二值逻辑,每位bit只占据1位。故24位bit只占据一个word(一般一个word为32bit)的存储空间

SummerXRT的博客 7638

Git下载与安装

一、Git下载 二、Git安装

欢迎订阅我的“JAVA全栈开发笔记(全)”专栏,价格优惠,仅需19.9元。 6万+

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

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

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值