d3.js——饼状图的拖拽
来源:互联网 发布:jira 7.2.2下载 linux 编辑:程序博客网 时间:2024/06/06 16:54
常规定义:
var width = 500, height = 500;var dataset = [30,10,43,55,13]var color = d3.scale.category10()var svg = d3.select("body").append("svg") .attr("width",width) .attr("height",height)var pie =d3.layout.pie()拖拽函数的定义:
var drag = d3.behavior.drag() .on("drag",dragmove)
function dragmove(d){ d.dx += d3.event.dx; d.dy += d3.event.dy; d3.select(this) .attr("transform","translate("+ d.dx+","+ d.dy+")")}//<span style="font-family: Arial, Helvetica, sans-serif;">偏移量=当前偏移量+拖拽偏移量</span>绘制饼状图:
var outerRadius = width/4, innerRadius = width/8;var arc = d3.svg.arc() .innerRadius(innerRadius) .outerRadius(outerRadius)
注意:这里我们需要将饼状图的每一个区域都用g标签包围起来,这样在做平移操作时只需要对各部分的g使用transform即可
var gAll = svg.append("g") .attr("transform","translate("+outerRadius+","+outerRadius+")")var arcs = gAll.selectAll("g") .data(pie(dataset)) .enter() .append("g") .each(function (d) { //指定当前区域的偏移量,用于保存偏移量 d.dx = 0; d.dy = 0; }) .call(drag) //调用drag函数arcs.append("path") .attr("fill",function(d,i){return color(i)}) .attr("d", function (d) { return arc(d) })//添加文字arcs.append("text") .attr("transform",function(d){ return "translate(" + arc.centroid(d) + ")"; }) .attr("text-anchor","middle") .text(function(d){ return d.value; });
0 0
- d3.js——饼状图的拖拽
- 【 D3.js 进阶系列 — 6.2 】 饼状图的拖拽
- d3.js——箭头的绘制
- d3.js——图形拖拽操作
- d3.js——绘制饼状图
- 【 D3.js 进阶系列 — 6.0 】 拖拽的应用(Drag)
- D3.js 饼状图的制作
- d3.js——关于力学图d3.layout.force的参数
- D3.js学习笔记十二:D3.js构图(d3.layout)——力学(Force)图
- D3.js 数据可视化学习笔记——Hello D3!
- 我的【数据可视化】——d3.js(1)
- d3.js——面积图表的制作
- d3.js—— 绘制二维数组的动态图表
- d3.js——弦图的绘制
- d3.js——集群图的绘制
- d3.js——树状图的绘制
- d3.js——csv表格的读取
- d3.js——partition函数的参数
- 深入分析 Java 中的中文编码问题
- First touch of Ionic 2
- 列表图标动画切换特效
- CALayer
- 表格标签和表格布局
- d3.js——饼状图的拖拽
- CSS清楚浮动float
- Android中的广播Broadcast详解
- 开放寻址法解决散列冲突
- FancyListIndexer 的使用----字母筛选器,使用贝塞尔曲线实现。
- 大型网站技术架构 读书笔记2 大型网站核心架构要素
- Git 基础 - 获取 Git 仓库
- 记一次 win2008R2 APACHE+PHP环境的搭建
- 左值、右值与右值引用 & C++11中