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

厦门自助建站陕西建工第三建设集团网站

厦门自助建站,陕西建工第三建设集团网站,内蒙古呼和浩特大学,企业查询信息系统说到数据可视化#xff0c;我们会行到很多优秀的框架#xff0c;像echarts、highcharts#xff0c;这些框架很优雅#xff0c;健壮#xff0c;能满足我们对可视化的大部分需求#xff0c;但是缺点也很明显#xff0c;就是这些框架几乎是不可定制化的#xff0c;当遇到特…   说到数据可视化我们会行到很多优秀的框架像echarts、highcharts这些框架很优雅健壮能满足我们对可视化的大部分需求但是缺点也很明显就是这些框架几乎是不可定制化的当遇到特殊的需求那就太难了。这个时候聪明的小伙伴会转而学习一些基础的定制化程度更高的框架而其中最杰出的就是D3.js由于我是专为北京地铁定制化软件经常会用到数据可视化废话不多说先上北京地铁路网因为今天是入门教程但是我不想讲svg基础知识只讲一点基础内容饼图,大佬请绕行。 1.绘制饼图的预备知识 1.比例尺的使用2.饼图布局的使用3.弧生成器的使用1.比例尺的使用   d3中有很多种比例尺其中有四种经常使用分别是scaleLinear线性比例尺scaleOrdinal序数比例尺scaleBand序数段比例尺scaleTime时间比例尺。今天我们只介绍序数比例尺。 const colorList [#ffa39e, #eaff8f, #87e8de, #ffd591, #91d5ff, #ffadd2, #ffe58f]; const color d3.scaleOrdinal().domain(colorList.map((d,i) i)).range(colorList) 使用序数比例尺将索引和颜色对应如color(1) -- #eaff8f 2.饼图布局的使用 d3中同样有很多种布局布局并没有绘制的作用他只是将原始数据转换成绘制图形所需要的数据的方法。饼图布局就是将数据转换成绘制饼图所需要的数据如startAngle,endAngle,index,data等数据。 let pie d3.pie().sort(null).value(d d.number);   sort方法是先将传入方法的数据做排序处理默认降序null参数即保留原数据局顺序。  value方法是选择布局要处理的数据即按照传入对象的number属性值排序。既然布局是一个方法那么试用起来非常简单 var pieData pie(dataset);   这里pieData就是我们需要的数据 3.弧生成器的使用   d3中大部分图形都是通过path绘制的弧生成器就是将数据绘制出path的d属性。 let arc d3.arc().innerRadius(100).outerRadius(200);   innerRadius为绘制弧的内径outerRadius为绘制弧的内径使用方式如下 arc({startAngle: 0, endAngle: 2})   因为我们的布局就是将数据处理成startAngle,endAngle这种形式那么画出饼图就变得非常简单 selection.data(pieData).enter().append(path).attr(d, (d) arc(d))   这就生成了一个饼图。 2.完整的画一个饼图 1.分组   想做好一个d3的项目分析必不可少好的分组能代码更简洁优雅。饼图大致分四个部分 弧形部分虚线部分文字部分中心详情部分 group.append(g).attr(class, pies); group.append(g).attr(class, lines); group.append(g).attr(class, texts); const centersT group.append(g).append(text).attr(x, 0).attr(y, 0).attr(text-anchor, middle).attr(dy, -1.6em).attr(font-size, 30).attr(fill, none).attr(stroke, #888).text(); const centersC group.append(g).append(text).attr(x, 0).attr(y, 0).attr(text-anchor, middle).attr(dy, 0em).attr(font-size, 30).attr(fill, none).attr(stroke, #888).text(); const centersB group.append(g).append(text).attr(x, 0).attr(y, 0).attr(text-anchor, middle).attr(dy, 1.6em).attr(font-size, 30).attr(fill, none).attr(stroke, #888).text();   这里中心详情部分我为了简单就没有分组。只把三大块分了组。 2.生成数据方法 const initData () {dataset dataset.map( d {return {name: d.name,number: Math.floor(Math.random() * 1000 100)}}) } 3.使用merge()方法将数据更新。   merge()方法可以把update和enter部分的操作合一更加方便数据更新。 let pathUpdate group.select(.pies).selectAll(path.pie).data(pieData) let pathEnter pathUpdate.enter().append(path); pathEnter.merge(pathUpdate).attr(fill, (d,i) color(i)).attr(class, pie).attrTween(d, function (d) {return arc(d)}) 4.绘制折线   因为每次数据的变化势必会影响折线的位置这里要做一些计算 let polylineUpdate group.select(.lines).selectAll(polyline).data(pieData); let polylineEnter polylineUpdate.enter().append(polyline);polylineEnter.merge(polylineUpdate).attr(fill, none).attr(stroke, #333).attr(stroke-dasharray, 5,5).attr(points, d {let direction (d.startAngle d.endAngle Math.PI * 2 ? 1 : -1);return [arc.centroid(d), arc.centroid(d)[0] * 1.6, arc.centroid(d)[1] * 1.6, (innerRadius outerRadius) * direction, arc.centroid(d)[1] * 1.6]})   这里的arc.centroid(d)为当前扇形的中心坐标arc.centroid(d)[0]为x坐标arc.centroid(d)[1]为y坐标。 (d.startAngle d.endAngle Math.PI * 2 ? 1 : -1);   这段代码是判断扇形是属于左半面还是右半面。 5.加入一些动画。   transition(动画)能让图形更加优雅的变化。这里主要是学习一下attrTween直接看文档我就不多说了。具体代码请移步至饼图。   后续将发布更多的教程。   原创博客转载请注明d3.js 入门指南     转载于:https://www.cnblogs.com/vadim-web/p/11270850.html
http://wiki.neutronadmin.com/news/280194/

相关文章:

  • 网站续费会计分录怎样做网站模板和定制的区别
  • 成都网站建设索q479185700内容营销的4个主要方式
  • 扁平化网站下载网络版微信
  • 广州开发区投资集团有限公司海外广告优化师
  • dw5怎样做网站建网站要花多少钱
  • 上海网站建设 普送wordpress主题模板下载
  • 快设计网站官网物流网站建设费用
  • 安徽海鹏建设工程有限公司网站精品建站
  • 石家庄做网站价格台州建设局网站信息价
  • 大良网站建设价位谷歌网站
  • 网站建设分金手指专业十时事新闻热点摘抄
  • 2021年十大购物网站排名自己开个网站
  • 网站系统运行环境网站建设前端需要看什么书
  • 电商网站开发参考文献织梦可以做英文网站吗
  • 驾校网站建设费用建设银行官方个人网站
  • ui怎样做网站pc版网站生成App
  • 福建建设执业资格注册管理中心网站外贸需要网站做生产车间展示
  • 北京天津网站设计制作多少钱网站优化
  • 四川欧瑞建设集团网站安卓app开发培训
  • 常熟做网站推广的吉林省建设工程信息网站
  • 做韩服的视频网站室内建筑设计
  • 上海网站建设报价方案嘉兴网站定制公司
  • 网站程序源码上传到空间打开网站首页还是显示的程序原源代码专业的公司网页制作
  • 如何做律所网站Wordpress不能修改导航名称
  • 网站开发工作室简介wordpress点击才弹窗插件
  • 水头做网站的公司减肥网站开发目的
  • 广西建设厅网站地址asp企业营销型网站建设
  • 做网站基本东西中山 家居 骏域网站建设专家
  • idea建设完整的网站招聘模板图片
  • 网站素材库免费有哪些下载软件的应用