1. 目前各大公司的大数据平台多使用d3还是echarts?什么时候适合用echarts,什么时候适合用d3?

在我看几种数据可视化平台多使用折线图,面积图和柱状图,条图居多,对于echarts和d3都有使用。 对于使用d3还是echarts还得从用户需求,计算数据的量的大小来进行分析:

(1) 对于客户需求要求的图表拥有大量的用户交互场景,用d3比较方便,因为d3中svg画图支持事件处理器,他是基于dom进行操作的。想要实现某个操作,直接调用相关的方法实现效果就行,他那个里面存在链式语法,这个和jQuery的链式调用差不多,简单易读。

(2) 对于大量的数据展示并且对于用户交互场景没什么要求,就只是展示数据,那我建议使用echarts,如果使用d3的话展示的每一个数据都是一个标签,那么当数据发生改变的时候这时候图表会重新渲染,会不停的操作dom,操作dom是很耗费性能的。

(3) 从兼容性方面考虑:echarts兼容到IE6及以上的所有主流浏览器,而d3兼容IE9及以上以及所有的主流浏览器,如果项目考虑兼容IE6,建议使用echarts。

2. D3和echarts的区别?

D3:

太底层,学习成本大

兼容到IE9以上以及所有的主流浏览器

D3通过svg来绘制图形

可以自定义事件

Svg:

不依赖分辨率

基于xml绘制图形,可以操作dom

支持事件处理器

复杂度高,会减慢页面的渲染速度

Echarts:

封装好的方法直接调用

兼容到ie6以及以上的所有主流浏览器

echarts通过canvas来绘制图形

封装好的,直接用,不能修改

Canvas:

依赖分辨率

基于js绘制图形

不支持事件处理器

能以png或者jpg的格式保存图片

3. 一般的交互都用在哪些方面上?

一般的数据交互,后台返回数据,前端将数据通过图表的形式展示给用户。对于这种只是展示数据的话我比较常用的是echarts

而像一些鼠标、键盘、触屏事件操作的话,是用d3实现的。因为svg支持事件处理器

当某个事件被监听到时,d3会把当前的事件存到d3.event对象,里面保存了当前事件的各种参数。

4. 不同图表之间的对比:

柱状图(常用)

二维数据集,有一维需要比较,适合中小规模数据集,不超过12条数据

对比分类数据的数值大小

柱图用高度反映数据差异,用来展示有多少项目(频率)会落入一个具有一定特征的数据段中,比如分析公司人员构成是否存在老龄化现象,可以通过柱图看到25岁以下的员工有多少,25岁到35岁之间员工有多少等这种年龄的分布情况。同时,柱图还可以用来表示含有较少数据值的趋势变化关系。

条形图主要是用于观测进程,分类比较,柱形图按照一定的区间将数据进行分组。其操作方法基本相似

条图

条图表达比较关系,按照强调的方式可以排列任何顺序,如在零售行业中统计畅销品的销售情况就是很好的应用。它是最通用的一种图表

折线图(常用)

二维数据集,适合大量的数据展示,不注重数据的具体大小,注重在某一个时间段的数据的变化趋势

观察数据的变化趋势

关心数据如何随着时间变化而变化,每周、每月、每年的变化趋势是增长、减少、上下波动或基本不变,这时候使用线图更好地表现指标随时间呈现的趋势

面积图(常用)

二维数据集

在折线图的基础上,进行运用

与折线图较为类似,面积图强调变量随时间而变化的程度,也可用于引起人们对总值趋势的注意。用填充了颜色或图案的面积来显示数据,面积片数不宜超过5片

饼图(常用)

对比分类数据的占比情况

构成比例关系时,最好使用饼图

如果你想表达的信息包括:“份额”、“百分比”以及“预计将达到百分之多少”,这时候可以用到饼图。为了使饼图尽量发挥作用,在使用中不宜多于6种成分。

气泡图(少用)

三维数据集

通过每个点的面积大小,以及位置坐标来展示信息

比如展示某一个具体的地点风的强度,有三个维度:精度,维度和风的强度,风的强度用圆的面积大小表示,圆越大,代表风的强度越大,但是人一般不善于判断面积,那么这个就适用于那些对于其中有一维辨识度没有那么高的三维数据的展示,但是具体的用的地方比较少,平时很少用

雷达图(平时用的不多)

多维数据集,四维以上,但是数据点有限(<=6),所以他的适用场景也有限,平时用的也少

雷达图可以用来表现一个周期数值的变化,也可以用来表现特定对象主要参数的相对关系。

雷达图多用于在财务分析中,用来分析企业负债能力、运营能力、盈利和发展能力等指标。

在使用方面:

Echarts里面的方法封装比较好,用的时候直接调用就能实现效果,

对于echarts的使用比较简单,引入echarts.js,然后就可以通过 echarts.init 方法初始化一个 echarts 实例并通过 setOption 方法设置图表实例的配置项以及数据,万能接口,所有参数和数据的修改都可以通过setOption完成,ECharts 会合并新的参数和数据,然后刷新图表。如果开启动画的话,ECharts 找到两组数据之间的差异然后通过合适的动画去表现数据的变化

而d3需要自己添加画布,绘制图形,绘制的每一个图形都为一个对象,可以添加相应的事件操作,操作dom

d3与echarts的区别的更多相关文章

  1. 金三银四,磨砺锋芒;剑指大厂,扬帆起航(2020年最全大厂WEB前端面试题精选)上

    金三银四,磨砺锋芒:剑指大厂,扬帆起航(2020年最全大厂WEB前端面试题精选)上 引言 元旦匆匆而过,2020年的春节又接踵而来,大家除了忙的提着裤子加班.年底冲冲冲外,还有着对于明年的迷茫和期待! ...

  2. 百度Echarts,蚂蚁金服G2,D3三种主流可视化工具对比

    1.百度的Echarts 官网:https://echarts.baidu.com/ 介绍:ECharts,缩写来自Enterprise Charts,是百度推出的一款开源的,商业级数据图表,它最初是 ...

  3. R语言学习笔记︱Echarts与R的可视化包——地区地图

    笔者寄语:感谢CDA DSC训练营周末上完课,常老师.曾柯老师加了小课,讲了echart与R结合的函数包recharts的一些基本用法.通过对比谢益辉老师GitHub的说明文档,曾柯老师极大地简化了一 ...

  4. d3.js入门学习

    个人感觉前端数据可视化是个趋势,并且现在所在公司也是有做这块的项目,虽然我目前还没有接触到公司数据可视化的项目,但是,今后总是要接触的嘛. 今天看了一下公司目前所用的两种数据可视化工具---D3和EC ...

  5. 实现node端渲染图表的简单方案

    实现node端渲染图表的简单方案 这个题目有点小,本篇博客真正谈论的应该是服务端生成图表的简单方案,这里面有两个关键字:服务端 & 简单,我们知道基于js有很多的图表库,知名的如D3.echa ...

  6. 知道创宇研发技能表v3.1

    by @知道创宇(www.knownsec.com) @余弦 & 404团队 后续动态请关注微信公众号:Lazy-Thought 说明 关于知道创宇 知行合一 | 守正出奇 知道创宇是一家黑客 ...

  7. 知道创宇研发技能表v3.0

    知道创宇研发技能表v3.0 2015/8/21 发布 by @知道创宇(www.knownsec.com) @余弦 & 404团队 后续动态请关注微信公众号:Lazy-Thought 说明 关 ...

  8. 从零开始学数据分析,什么程度可以找到工作?( 内附20G、5000分钟数据分析工具教程大合集 )

    从零开始学数据分析,什么程度可以找到工作?( 内附20G.5000分钟数据分析工具教程大合集 )   我现在在Coursera上面学data science 中的R programming,过去很少接 ...

  9. Big Data架构师技能图谱

    大数据通用处理平台 Spark Flink Hadoop 分布式存储 HDFS 资源调度 Yarn Mesos 机器学习工具 Mahout Spark Mlib TensorFlow (Google ...

随机推荐

  1. 华为云服务器centos7.3 安装jdk

    1. 进入oracle官网 https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 服 ...

  2. [JSOI2008]最大数 题解

    前言 巨佬说:要有线段树,于是蒟蒻就开始打线段树. 蒟蒻只能拿之前0分的板子题开刀了QAQ. 题解 一开始我以为插入操作不带取模,于是打了下面这个弱智玩意 下面的代码是会WA的 #include &l ...

  3. Maven的settings.xml配置详解

    子节点详细介绍转载:http://www.cnblogs.com/jingmoxukong/p/6050172.html?utm_source=gold_browser_extension 全局配置 ...

  4. java导入ldif文件

    网上导入ldif文件的方式都是基于命令,或者相应工具如LDAP Browser \Editor v2.8.2. 但用java去实现这样的功能好像网上很少,于是我参照相应的开源代码并整理了一下,亲自测试 ...

  5. java.lang.OutOfMemoryError:GC overhead limit exceeded解决方

    Tomcat异常信息: Exception in thread "main" java.lang.OutOfMemoryError: GC overhead limit excee ...

  6. slider组件

    slider组件,是一个强大的滑动选择器组件: 属性: min:类型 数字 滑动选择器的(范围)最小值 max:类型 数字 滑动选择器的(范围)最大值 step:类型 数字 步长(滑一次走的距离)  ...

  7. el-date-picker用法

    需求:1.默认时间是当天开始到此刻的时间 2.快捷键为今天.昨天.最近一周.最近30天.最近90天 3.不可以清空,必选项

  8. mongodb 语法小结

    数据库 一个mongodb中可以建立多个数据库. MongoDB的默认数据库为"db",该数据库存储在data目录中. MongoDB的单个实例可以容纳多个独立的数据库,每一个都有 ...

  9. csr_matrix用法

    1 csr_matrix默认对未填充的位置置为0, row = [0, 0, 0, 1, 1, 1, 2, 2, 2] # 行指标 col = [0, 1, 2, 0, 1, 2, 0, 1, 2] ...

  10. 龙珠MAD-视频列表(收集更新)

    博主最喜欢的动漫实际上就是龙珠.因此也喜欢收集或创作一些龙珠视频. 一些是一个分享列表.喜欢可以转载或收藏哦.(不定时持续更新) http://test.migucloud.com/vi0/360/3 ...