基本绘制

柱形图基本绘制方法,注意enter的使用,免去了事先写好rect元素的麻烦

//设置画布
var width = 400
var height = 400
var svg = d3.select('body').append('svg').attr('width',width).attr('height',height)
//设置柱形图数据集
var dataset = [50,43,120,87,99,167,142]//柱形图数据集
//设置柱形图元素
var rectStep = 35
var rectWidth =30var rect = svg.selectAll("rect").data(dataset).enter()//选中只有数据没有元素的部分.append('rect')//由于没有元素所以要添加元素.attr('fill','steelblue')//设置颜色.attr('x',(d,i)=>i*(rectWidth + 3))//设置横坐标,+3是设置柱形图之间的间隙.attr('y',(d)=>height-d)//反转.attr('width',rectWidth).attr('height',(d)=>d)

数据更新

分别对update,enterexit三个部分做处理

update如果不做处理,则不会有新的排序,因为配对的没有改变,还是之前画好的
enter不做改变,则不会增加,因为只增加了数据,没有对应的元素

    <script>//设置画布var width = 400var height = 400var svg = d3.select('body').append('svg').attr('width',width).attr('height',height)//设置柱形图数据集var dataset = [50,43,120,87,99,167,142]//柱形图数据集//设置柱形图元素var rectStep = 35var rectWidth =30var rect = svg.selectAll("rect").data(dataset).enter()//选中只有数据没有元素的部分.append('rect')//由于没有元素所以要添加元素.attr('fill','steelblue')//设置颜色.attr('x',(d,i)=>i*(rectWidth + 3))//设置横坐标,+3是设置柱形图之间的间隙.attr('y',(d)=>height-d)//反转.attr('width',rectWidth).attr('height',(d)=>d)</script> <button type='button' onclick="mysort()">排序</button><button type='button' onclick="myadd()">增加</button><script>function draw(){var update = svg.selectAll('rect').data(dataset)var enter = update.enter()var exit = update.exit()update.attr('fill','steelblue')//设置颜色.attr('x',(d,i)=>i*(rectWidth + 3))//设置横坐标,+3是设置柱形图之间的间隙.attr('y',(d)=>height-d)//反转.attr('width',rectWidth).attr('height',(d)=>d)enter.append('rect').attr('fill','steelblue')//设置颜色.attr('x',(d,i)=>i*(rectWidth + 3))//设置横坐标,+3是设置柱形图之间的间隙.attr('y',(d)=>height-d)//反转.attr('width',rectWidth).attr('height',(d)=>d)exit.remove()}function mysort(){dataset.sort(d3.ascending)draw()}function myadd(){dataset.push(Math.floor(Math.random()*100))draw()}

D3 BarChart相关推荐

  1. D3.js 01绘制BarChart

    转载于B站小魁少爷的D3.js教程 非常不错的教程

  2. h5 数字变化_前端/h5 D3.js实现根据数据动态更新图形/类似进度实时变化效果

    最近接到一个需求,在满足规则下,实现类似这种展示效果,其实就是用图形反映数据(NK,一种干扰值) 运行后,它其实是不断在动的,每格都可能显示灰色或者彩色 这里一共是10个格子,每格代表一个范围边界,说 ...

  3. 如何创建多个条形图_学习使用D3创建条形图-初学者教程

    如何创建多个条形图 D3.js is the most popular JavaScript library for creating visual representations of your d ...

  4. 使用JavaScript和D3.js实现数据可视化

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由独木桥先生 发表于云+社区专栏 介绍 D3.js是一个JavaScript库.它的全称是Data-Driven Documents(数 ...

  5. NodeJS+Vue3+D3

    文章目录 一.任务目标 二.代码实现主要部分 1. App.vue文件中加入力导向图 2. 编写力导向图的js文件 3. 编写力导向图的js文件 4. 编写直方图的js文件 三.注意事项 四.结果展示 ...

  6. 中国近三年上市公司信息统计(主板、创业板、科创板)-web数据可视化(d3.brush-时间选择器)

    1.先看效果. 哔哩哔哩在线解读演示: 中国近三年上市公司信息统计(主板.创业板.科创板)-web数据可视化(时间选择器)-000009_哔哩哔哩_bilibili 中国近三年上市公司信息统计(主板. ...

  7. Vue+D3 绘制条形图和力导向图

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 Vue+D3 绘制条形图和力导向图 准备:D3代码 1.条形图 2.力导向图 本篇blog在于把已经编写好的D3代码从一般HTML文件 ...

  8. 从壹开始微服务 [ DDD ] 之一 ║ D3模式设计初探 与 我的计划书

    缘起 哈喽大家周四好!又是开心的一天,时间过的真快,我们的 <从壹开始 .net core 2.1 + vue 2.5 >前后端分离系列共 34 篇已经完结了,当然以后肯定还会有更新和修改 ...

  9. D3.js、HTML5、canvas 开发专题

    https://www.smartdraw.com/genogram/ http://www.mamicode.com/info-detail-1163777.html  D3折线图 https:// ...

最新文章

  1. iOS和android h5字体差异,关于移动hybrid开发中H5页面的字体应与系统保持一致的问题...
  2. linux定义LD_library,linux – CentOS /usr/local / lib系统范围内$LD_LIBRARY_PATH?
  3. 十个经典的学生上课插嘴ZT
  4. Python r‘‘, b‘‘, u‘‘, f‘‘ 的含义
  5. ubuntu 安装lamp
  6. 高级数据分析1代码_用Python进行数据分析,让你一看就会
  7. 如何在graphpad表示出正负误差_Graphpad Prism:SCI科研论文中误差连线图怎么做
  8. django-django的开发流程
  9. zabbix mysql安装配置_ZABBIX4.4 安装及配置
  10. C++多线程编程 (1)
  11. linux opencv移植教程,OpenCV在Ubuntu和Linux系统下的移植
  12. Hadoop中core-site.xml文件不允许有匹配“[xX] [mM] [lL]”的处理指令目标。
  13. CAM350软件使用说明----PADS相关
  14. 公司发展历程企业项目进度大事记时间轴PPT模板
  15. 2019各种比赛总结
  16. 父子盒子边距塌陷之为什么设置margin-top父子盒子会一起移动
  17. 封装:el-upload上传图片组件(解决图片闪动、多选问题)
  18. 在chrome中f12控制自动刷新页面增加阅读量方法
  19. PHP中.=和+=是什么意思详解
  20. 50个安卓开发者应该熟悉的Android Studio技巧和资源

热门文章

  1. 计算机负数次幂科学表示,负数的科学计数法怎么表示
  2. java高并发日志_高并发下log4j的性能瓶颈
  3. 《中学生可以这样学Python》84节配套微课免费观看地址
  4. 详解Python的max、min和sum函数用法
  5. 三同轴连接器_电子元器件 连接器相关知识
  6. php memcached 例子,php下Memcached入门实例解析
  7. linux 行尾加字符串,linux – cat in expect脚本在字符串结尾添加新行
  8. php分割文本读入数组,PHP fgets按行读取字符串和explode分割字符串为数组
  9. 分布式系统关联查询_一文详解分布式系统 | 留言送书
  10. android dex2oatd e,解決android項目Error:Execution failed for task ':app:dexDebug'.ebug'錯誤