首页
学习
活动
专区
圈层
工具
发布

D3 介绍

D3 帮助你屏蔽了浏览器差异,做出来图案的效果可以说是炫目得一塌糊涂,可是代码却很简洁。在我第一次听人介绍 D3 的时候,确实被其示例震撼到了,大量的例子在这里可以找到。...这是 D3 以数据为核心的一个示意图,可以简单这样来解释:有一个选择区(selection),存在若干节点(node),因此可以容纳若干数据(data),最大可容纳数据的量等于节点的个数,即数据和节点一一对应...你可以用 D3 加上自己定义的 CSS 来创建 SVG 图案,浏览器未来的特性也会被 D3 封装起来给你用,这些事情无非是让你对 DOM 和其上的数据的操作换了一种形式而已。...过渡(Transitions):这指的是图案从一种状态变化到另一种状态的时候,中间的动画过渡效果。D3 支持几种渐变的风格,帧速很高,实际上还是 CSS3 的渐变,但是对开发人员来说好用多了。...当然,直接拿 D3 来绘制图表可能会觉得繁琐,如果使用它的扩展就方便多了。

1.8K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    D3、openlayers的一次尝试

    近期尝试了一个webgl相关的内容,有些小激动,及时分享一下我的测试示例,效果如下: 此示例分从业务角度分为两部分,一个部分为d3展示的柱图,另一部分则为用openlayers展示的地图。...: flip.js:为此组件 入口 flip.ol.js:openlayer的具体实现 flip.d3.js:d3绘制柱图的具体实现 flip.store.js:数据接口,用于返回从后台接口获取到的数据...city.js:城市名称数据字典 adapter/d3.js:用于将后台数据转换为d3可用的数据格式 adapter/ol.js:用于将后台数据转换为openlayers可用的数据格式 adapter.../provider.js:转换器工厂入口 本示例主要以flip.js为主,在组合d3和ol相关功能。...constructor(options){ this.options = _.assign(Flip.Default, options); this.d3 = new d3

    2.2K70

    告别繁琐的D3代码:这款可控、可自定义的D3图表库,更轻量、更简单!

    C3.js C3.js 是基于 D3 visualization library 开发的 JavaScript 库,它可以让开发者构建出可复用的图表,并且还提供了一系列图表上的交互行为。...通过包装构建整个图表所需的代码,可以轻松呈现基于 D3 的图表。 C3.js 很容易定制。 C3.js 提供了多种回调来访问图表的状态。...npm i c3 此外,我们还需要 d3,因为 c3 依赖于它。 npm i d3 接着,更新 index.html 页面以获取所需的 JavaScript 和 CSS 引用。...这是index.html的头部部分。它包含指向 bootstrap 和 jQuery 的样式表和 JavaScript 文件的链接 下图显示了页面的正文部分。我们有一个用于渲染的图表的 div。...在这里,我们以图表上的线型为目标,通过这种简单的样式,我们能够自定义线条的大小。 自定义轴,比如更改 x 轴和 y 轴的颜色 C3.js的自定义就要麻烦一些!需要熟练掌握相应的属性、样式等。

    86610

    d3从入门到出门

    选择元素 d3主要有两个选择器 select 选择相应的dom元素, 如果有多个, 选择第一个 selectAll 选择所有的指定的dom元素....网络数据加载 d3内置数据加载的方法,可以解析比较常见的数据格式,主要有以下四种,这里主要以csv文件个数数据作为示例 d3.csv d3.json d3.tsv d3.xml csv文件内容如下 //..." age": " 33"} 事件 d3自然也可以监听相应的事件。...,比如,图片长度为500,但是数值都是在10以内, 我们做出来的图一定是需要尽量的填充整个视图,所以需要对源数据做一定的缩放, 下面介绍两类缩放,d3本身有很多的缩放函数。...,所以d3有内置的函数用于生成坐标轴 可选坐标轴 axisTop axisRight axisBottom axisLeft 上面的上下左右主要指坐标周的刻度文字的位置,比如axisTop是指文字在横轴上面

    3.6K20

    D3数据连接之“进入”

    小编说:数据连接是D3中的面包和黄油。D3不提供制图的基础函数,相反,它靠的是数据连接。数据连接可以让页面元素进入网页,一旦进入,可以修改、更新及退出。本文将主要介绍“进入”部分。...这些东西是网页上的一个或一组——、、等所有值得怀疑的常见元素。具体一点,就是这些常见元素的一个D3选择集。 在深入了解之前,让我们忘记D3一会儿。...(实际上,我直接从D3中搬来了“enter”、“update”及“exit”这些词。) 此外,D3让你可以基于数据执行上述所有操作。D3通过一种称为“数据绑定”的技术来达成这种能力。...此处展现的就是D3进入阶段的“魔法”——通过d3.selectAll()创建一个并不存在的元素的选择集。...是的,就是这样——你不必告诉D3你的数据集有多大。你只要将其与一个空选择集进行连接,它就会为你创建正确数量的对象。

    1.4K20

    JavaScript d3使用指南

    大家好,又见面了,我是你们的朋友全栈君。 JavaScript d3使用指南 1....如何在项目中使用d3: 如果是要在网站上使用d3效果的话,那么可以直接在script中引用官方直接给的网络库 (这个script可以单独成行) 官网:https://d3js.org/ 2. d3基本思想 d3是基于选择数据和绑定数据进行工作的。...d3中就提供了3个函数来解决这个问题: 假如数据比对象多,那么d3就会自动创建对象与多余的数据绑定: enter: 自动创建的对象与数据绑定的部分被成为”enter” update: 原本的的对象与数据绑定的部分被称为...制作简单的图表 首先我们需要明确一下制作图标的思路: 生成svg画布 使用d3中的rect元素对svg进行赋值,即各类参数 在完成赋值之前,需要我们自己去设计数据,让d3进行数据转化,从而赋值给svg。

    2.3K40

    【D3使用教程】(4) 添加数轴

    (1)设置数轴 D3的数轴实际商是由程序员自己来定义参数的函数。调用数轴函数,会生成数轴相关的可见元素,包括轴线、标签和刻度 。...//call()在D3中会取得传递过来的元素,然后再把它交给其他函数。对这个例子而言,传递过来的元素就hi新的分组元素g。而call()接着把g交给了xAxis函数,即在g元素内生成数轴。...从上面的样式可见,数轴本身是由path,line,和text元素组成的。 但是,要注意的是,在给SVG元素应用样式时,要确保应用的属性名是SVG的,而不是CSS的。...如,数值为0.23返回的是23% 但是,使用tickFormat()之前,首先要定义一个新的数值格式函数。通过这个函数可以告诉D3把数值当成百分比,同时保留一位小数等等。...,把两端的值扩展到最接近的整数。

    86210

    【D3使用教程】(1) 开始 | 加载数据

    对于D3和浏览器可视化的角度来说,我们只讨论文本数据。即那些可以表现为数值或字符串的东西。...如果你可以把数据保存到.txt纯文本文件,或者.csv逗号分隔值文件,或者.json文件,那么D3就能使用它。 用D3术语来说,数据必须绑定到页面中的元素上。形象地说,就是数据要附着在东西上。...而映射的规则有你来定。例如,数值越大条形越长等。 在D3中,为了实现映射规则,需要把数据输入的值绑定到DOM中的元素上。 (2)绑定数据 那么,如何绑定?...D3中通过的selection.data()方法把数据绑定到DOM元素。但必须具备两个条件: 数据 选中的DOM元素 首先,加载数据。 (2.1)加载CSV数据。 CSV是逗号分隔的值得意思。...如果D3发现它是一个函数,就会调用它,同时将当前数据值d作为参数传进去。 任何情况下,没有那个函数,D3将无法把当前数据值传出来。此时,可怕的事就会发生-_->。

    98730

    【D3使用教程】(3) 添加比例尺

    “比例尺是一组把输入或映射为输出范围的函数”。-----Mike Bostock 一般而言,任意数据集中的值不可能刚好与图表中的像素尺度一一对应。...而D3中,比例尺要做的就是将数据值映射为可视图形中的可替代值得手段。 D3中,比例尺是一种函数,带参数。你可以定义任意多个比例尺函数。 本节中,我们将讨论线性比例尺。...例如100-500; 输出范围:指输出可能的范围,一般以用于显示的像素为单位; 我们用一幅图来表示: 例如输入值域为[100,500],输出范围[10,350] 接着,我们来创建比例尺: D3有一个比例尺生成函数...,把两端的值扩展到最接近的整数。...; log 对数比例尺; quantize 输出范围为独立的值得线性比例尺,适合想把数据分类的情形; quantile 适合已经对数据分类的情形; ordinal 使用非定量值(如类名)作为输出的序数比例尺

    75010

    从 Vite 与 Vue 开始的 D3 数据可视化之旅

    这是一个极其简单的并尽可能面向未来的新手教程,它将指导你简单地使用 Vite 启动 Vue 的脚手架,并开始 D3 数据可视化的相关开发。...后续的内容也将以此为展开,当然你也可以执拗地使用 npm run 替代教程中的 yarn。 D3: Data-Driven Documents 数据可视化最为流行的基础库,没有之一。...Vue + D3 根据老师的要求,作为一个 Demo 示例,我们只需要简单演示一下 D3 直方图是如何与 Vue 相结合的。 ?...安装 D3 依赖: yarn add d3 我们可以参考一下 D3 官方给出的 Bar Chart 示例:https://observablehq.com/@d3/bar-chart 而我们要做的就是将其改造进我们的...---- 新的旅程 在此前,我们简单的学习了 Vue + Vite + D3 的基本操作,并搭建了一个基础的页面。 接下来我们来试图为其添加一个表单,并添加更多辅助开发的功能。

    3K30

    D3数据连接之“更新”和“退出”

    小编说:昨天的推送中,我们阐述了数据连接的进入阶段。本文中,我们学习一下其更新和退出机制。 本文选自《图说D3:数据可视化利器从入门到进阶》。...但是,这次该方法只会创建一个没有元素关联的数据点,而会不像以前那样创建5个全新的占位元素。D3这时可以很好地满足你的要求。...D3通过将数据点和元素进行连接、绑定、比较来处理这3种状态的轮换 。其只可能出现以下3种结果。 (1)数据点比元素多。这将触发“进入”状态(也有可能是“更新”状态)。 (2)数据点和元素一样多。...但是,也有和剧场这个比喻不一样的地方:在一场表演中,演员必须遵循登台、表演、退场这样的节奏,但是在D3中,你不一定要全部经历这3种状态的变迁。...有时候,你会用D3制作一个静态的图形,只需要调用enter()即可。在其他场景下,数据点和元素保持一致,所以你永远不需要调用(实际上,我们的条形图就是这种情况)。

    1K20

    数据可视化工具d3与echarts的区别

    区别 D3 Echarts 太底层,学习成本大 封装好的方法直接调用 兼容到IE9以上以及所有的主流浏览器 兼容到IE6以及以上的所有主流浏览器 通过svg来绘制图形 通过canvas...复杂度高,会减慢页面的渲染速度 能以png或者jpg的格式保存图片 使用场景 一般是根据计算数据量的大小来进行分析: 1)对于客户的需求要求的图表拥有大量的用户交互场景,用d3比较方便,因为...d3中的svg画图支持事件处理器,是基于dom进行操作的。...2)对于大量的数据展示并且对于用户交互场景没什么要求,就只是展示数据,建议使用echarts,如果使用d3展示的每一个数据都是一个标签,当数据发生改变时图表会重新渲染,会不停的操作dom。...3)兼容性方面:echarts兼容到IE6及以上的所有主流浏览器,d3兼容IE9及以上所有的主流浏览器。

    1.3K10

    初探React与D3的结合-或许是visualization的新突破?

    d3提供丰富的svg绘制API、动画甚至布局等功能,目前市面上大多数visualization仓库是由d3构建的。...d3的优势在于将data与DOM绑定,理想化的方案是直接操作data而不是操作DOM来实现UI的更新,从这个角度上讲,d3的理念与React有异曲同工之妙。...我们的目的是充分利用React和d3各自的优势,结合上文提到的特性,最终采用如下方案: 不使用d3的绘制API,而是由React生成DOM,这样便可以将UI更新细节到每个节点; 使用d3的svg算法,生成的结果作为...React组件的props或state; 使用d3的动画API弥补React动画方面的不足; 某些特殊动画需要使用d3的绘制API。...当然,demo中的代码并不是完美的,有兴趣的读者可以研究进一步优化。 上述代码中使用d3的transform方法计算svg的transform,正如上文所述,这是React与d3结合的一个细节。

    1.7K70
    领券