首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

D3使用教程】(6) 交互操作之事件监听

事件监听 之前的文章写到,为了让图表具有交互能力,我们必须针对一些事件来编写代码,以便监听某些DOM元素发生的这些事件。 D3,on()方法对于绑定D3元素集非常方便。....on("mouseover",function(d){ d3.select(this) //传给任何D3方法的匿名函数,如果想操作当前元素,只要引用this就行 .transition...为了不被标签影响,可以给标签(svg text元素)添加规则: svg text {pointer-event:none;} 或者D3创建标签的时候设置CSS属性: svg.selectAll("text...(function(a,b){ if(sortOrder){ return d3.ascending(a,b);//比较函数接受来自两个不同元素的数据值,针对数组每一对元素都被调用一次...3】HTML的DIV提示条 类似于SVG,只是它能做的更美观 例如,我们再页面初始化一个html提示条 : <strong

27210

AngularJS in Action读书笔记5(实战篇)——directive引入D3饼状图显示

正文: 上篇我们主要做了如下工作: 创建了两个文件:   statistic.html:提供Statistic这个功能的界面   StatisticController.js:作为statistic.html...= d3.select("body") //选择文档的body元素 .append("svg") //添加一个svg元素 .attr("width", width) /...我们需要将负责显示d3的业务逻辑放到它该存在的地方。   当时我想到了指令。页面通过Attribute、Element、Class等任意一种形式定义一个指令,然后指令完成需要的代码逻辑。   ...首先是data.html声明一个指令,我们命名为d3chart:   其中status-arr="myUser.statusArr"是将保存在DataController.js的数据传到这里的status-arr变量上,然后D3Chart.js

2.2K60
您找到你想要的搜索结果了吗?
是的
没有找到

【D3.js - v5.x】(2)绘图 | 比例尺 | 坐标轴 | 柱状图 | 过渡

使用 D3 body 元素添加 svg代码如下: var width = 300; //画布的宽度 var height = 300; //画布的高度 var svg = d3.select... SVG ,矩形的元素标签是 rect。例如: 上面的 rect 里没有矩形的属性。...enter() //指定选择集的enter部分 .append("rect") //添加足够数量的矩形元素 这段代码以后会常常出现在 D3代码,请务必牢记。...**坐标轴 SVG 是没有现成的图形元素的,**需要用其他的元素组合构成。 D3 提供了坐标轴的组件,如此 SVG 画布绘制坐标轴变得像添加一个普通元素一样简单。...代码如下: svg.append("g") .call(axis); 上面有一个 call() 函数,其参数是前面定义的坐标轴 axis。 D3 ,call() 的参数是一个函数。

53620

「数据可视化库王者」D3.js 极速上手到Vue应用

用于数据可视化的 D3,其核心在于使用绘图指令装饰数据,从源数据创建新的可绘制数据,生成 SVG路径以及从数据和方法 DOM创建数据可视化元素(如轴)的功能。 ?...有许多用于管理DOM的工具,所有这些工具都可以 D3集成数据可视化功能。这也是 D3能与 Vue无缝结合的原因之一。 于此,我们不需要从 D3 DOM操作功能开始学起,直接通过实例来入门 D3。...你需要学习的第一件事是如何使用D3.js选择和操作DOM元素。该库操作DOM方面实际上非常强大,因此理论上可以将其用作 jQuery的替代品。以下代码请逐行添加运行。...5. scales: 比例尺函数 D3有个重要的概念就是比例尺。比例尺就是把一组输入域映射到输出域的函数。映射就是两个数据集之间元素相互对应的关系。...D3有各种比例尺函数,有连续性的,有非连续性的,本例子,你将学到 d3.scaleLinear() ,线性比例尺。

7.8K30

「数据可视化库王者」D3.js 极速上手到Vue应用

用于数据可视化的 D3,其核心在于使用绘图指令装饰数据,从源数据创建新的可绘制数据,生成 SVG路径以及从数据和方法 DOM创建数据可视化元素(如轴)的功能。 ?...有许多用于管理DOM的工具,所有这些工具都可以 D3集成数据可视化功能。这也是 D3能与 Vue无缝结合的原因之一。 于此,我们不需要从 D3 DOM操作功能开始学起,直接通过实例来入门 D3。...你需要学习的第一件事是如何使用D3.js选择和操作DOM元素。该库操作DOM方面实际上非常强大,因此理论上可以将其用作 jQuery的替代品。以下代码请逐行添加运行。...5. scales: 比例尺函数 D3有个重要的概念就是比例尺。比例尺就是把一组输入域映射到输出域的函数。映射就是两个数据集之间元素相互对应的关系。...D3有各种比例尺函数,有连续性的,有非连续性的,本例子,你将学到 d3.scaleLinear() ,线性比例尺。

8.4K10

D3库实践笔记之图表交互 |可视化系列36

对于HTML元素来说,要响应用户的行为,可以图形元素上添加一个或多个事件监听器,当监测到对应行为时,执行某些响应代码。...可视化绘制时我们普遍用了var svg=d3.select("body").append("svg")或类似的代码,就可以使用以下代码元素绑定事件监听器: var rect=svg.selectAll...漫游是一种拖拽效果,但在力导向图等的交互,我们希望有更纯粹的拖拽元素效果,因此d3也有d3.drag()用于创建拖拽行为。...>,点击按钮触发事件,函数update里面调用d3的绘制代码,实现交互。...d3实现交互效果并不复杂,只需要对选择集使用on(),设定事件的监听器,监听器里写交互的代码,定义响应的行为。

5.3K00

《使用D3设计交互式图表》简读笔记|可视化系列31

D3的功能不止于做可视化,Documents代表可以浏览器展现的一切,包括HTML、SVG,根据数据操纵DOM(Document Object Model)可实现非常多的效果,但通常大家通常用D3来将数据映射为可视图形...这段d3脚本代码的作用是html的body元素里加入一个文本段落(),并把文本内容hello world!添加给这个段落。...D3也可以直接操作div或其他原生HTML元素来绘图,但总是略显笨重,且容易出现浏览器间不一致的问题。而用 SVG就更可靠,图形效果更一致,且绘图速度更快。...元素添加与数据绑定 从前面的代码框架及D3可视化基本步骤可以看出,用D3将数据变成图形首先需要选定元素并添加SVG元素(如果html代码已经有了需要的元素则只需选定该SVG元素)。...我们选择了需要操作的svg元素后,需要添加rect(矩形)等图形,用append()方法添加元素,insert()方法在所选元素前添加一个元素。用remove()方法DOM删除元素

3.7K20

前端er必须掌握的数据可视化技术

HTML 的 canvas 标签的浏览器,不需要安装任何插件,便可以使用基于 OpenGL ES 2.0 的 API canvas 中进行2D和3D渲染。...要使用webGL进行3D渲染,首先得页面创建一个canvas元素,通过这个canvas元素来初始化WebGL上下文。...以下是一个简单例子,创建了一个圆心[150,50],半径为40的圆: var circle = new zrender.Circle({ shape: { cx: 150, cy: 50, r: 40...它可以说是 “可视化界的jQuery”,因为D3的api和jQuery非常类似,可以看以下的例子: d3.select('#chart') .selectAll("div") .data([4, 16,...这里贴出d3的GitHub项目地址:https://github.com/d3/d3 6、Vega 使用Vega不需要写前端代码,它做到了只需要 JSON 就能完成所有图表相关的开发,包括数据的加载、转换

2.2K30

JavaScript图表的数据可视化:比较D3和Kendo UI

D3 Chart Kendo UI Chart <div...在下一节,我们将在显示区域略微移动图表。 现在我们开始讲D3部分的内容。在这里,我们告诉D3我们将使用哪些数据,并指定图表每个条形图的基本元素。...这是D3的基本概念的一部分。使用图表可以做三件事:进入、更新和退出。输入获取新的数据并将其添加到现有的图表—它向图表添加新的条形图。更新更改现有条的值。退出从图表删除元素(条)。...下一个步骤 让我们更进一步,首先,关闭那些网格线,使我们的两个图表匹配。通过向kendoChart添加两个部分,Kendo UI代码很容易做到这一点。...同样,Kendo UI做它认为我们需要在图表D3只做我们告诉它的。在这个过程,我们两个图表上都加一个X轴。

11.8K30

D3使用教程】(2) 绘制柱状图与散点图

多数时候我们常常没有区分这两个概念。 首先我们来尝试绘制一幅柱状图。 注:开始之前,先在页面引入jquery和d3.js文件。...(2)绘制SVG 关于SVG元素,最关键是要记住它们的各个方面都是通过属性来设定的。也就是说,通过标签的属性/值对 来指定SVG元素的各方面特征。...("svg").attr("width",w).attr("height",h);//把append()返回的新元素保存在了变量svg let dataset = [5,10,15,20,25...**i : 是当前元素的索引值。**这个值从0开始。为了自定义函数里使用这个索引,必须记住,要把它作为函数的参数。当然,不一定要命名为i。...多值映射 我们注意到,方法链上已经调用了多次attr()。 这是挺麻烦的事。D3多值映射机制,能让你一次性设置多个值。

28820

D3 介绍

D3.js 是一个基于数据的操作文档的 JavaScript 库,可以让你绑定任何数据到 DOM,支持 DIV 这种图案生成,也支持 SVG 这种图案的生成(如果你对 SVG 不熟悉,请先看一下这篇文章...D3 帮助你屏蔽了浏览器差异,做出来图案的效果可以说是炫目得一塌糊涂,可是代码却很简洁。我第一次听人介绍 D3 的时候,确实被其示例震撼到了,大量的例子在这里可以找到。...你可以用 D3 加上自己定义的 CSS 来创建 SVG 图案,浏览器未来的特性也会被 D3 封装起来给你用,这些事情无非是让你对 DOM 和其上的数据的操作换了一种形式而已。...其实,我倒觉得还好,d3 功能比较强大,但是很多人不喜欢的主要原因是,这个东西是不符合人类常规思维的,它是那种以数据(以及容纳数据的容器)为核心的代码风格,以这个折线图为例: 如果用 SVG 来实现它的话...,一般都要使用 path 标签了,关键代码包括,一个是计算点坐标的代码: var line = d3.svg.line() .x(function(d) { return x(d.date);

1.3K20

D3使用教程】(5) 动态更新与过渡动画

数据总是变化的,那么我们要如何将变化的数据反映到图表上呢? D3,这些变化通过更新进行处理。而过渡通过使用动画用于处理视觉上的展示。...整数值有助于将视觉元素与像素网格对齐。 #(3)更新 到目前为止,我们的代码还是随着页面的加载执行。对于更新数据来说,可以开始的绘制代码一执行完毕就更新,但这样更新太快。...通过事件监听实现交互 首先在body添加一个p标签,用于点击事件更新图表: Click on thie text to update the chart 接着D3代码最后,添加D3的事件监听...那么我们来认识下D3提供的过渡动画—transition() 要创建一个过渡效果,只需要在更新时简单添加一行代码: .transition() 但是多少的持续时间是合适的呢?...SVG,支持剪切路径(clipping:path),就是PS的蒙版。剪切路径是一个SVG元素,可以包含可见的元素,并与这个可见元素一起构成可以应用到其他元素的剪切路径或蒙版。

29710

JavaScript d3使用指南

可以自己html中试一试这一段代码(仔细看,我是直接引用了网络上的d3库,所以在网上都可以正常运行) 3....选定元素与绑定数据 1.选择元素 d3两个选择元素的函数: select (选择第一个符合的) selectAll (选择所有符合的) 比如: var body = d3.select("body"...); //选择html文档的body元素 var svg = body.select("svg"); //选择bodysvg元素,注意声明了body后,就可以把body当作一个新的d3对象使用(大概这个意思...插入元素 d3提供了两种插入函数: append() : 选择集尾部插入元素 insert() : 选择集头部插入元素 甘雨 诺艾尔 <p...制作简单的图表 首先我们需要明确一下制作图标的思路: 生成svg画布 使用d3的rect元素svg进行赋值,即各类参数 完成赋值之前,需要我们自己去设计数据,让d3进行数据转化,从而赋值给svg

1.7K40
领券