利用d3js绘出环形百分比环
利用d3js绘出环形百分比环
(function() {
var numberData = [{
value : 0.334,
text : "33.4%",
color : "#fd12000",
id : 1
}, {
value : 0.666,
text : "66.6%",
color : "#3611aa",
id : 2
}];
drawCir("#container", numberData, 170, 170);
function drawCir(selector, data, height ,width) {
var radius = Math.min(width, height) / 2, spacing = 45;
fields = data;
var arc = d3.svg.arc().startAngle(0.5 * Math.PI).endAngle(function(d) {
var direction = (d.id % 2 == 0) ? -1 : 1;
return 0.5 * Math.PI + direction * d.value * 2 * Math.PI;
}).innerRadius(function(d) {
return radius - spacing;
}).outerRadius(function(d) {
return radius;
});
var svg = d3.select(selector).append("svg").attr("width", width).attr("height", height).append("g").attr("transform", "translate(" + width / 2 + "," + height / 2 + ")");
var field = svg.selectAll("g").data(fields).enter().append("g");
field.append("path");
field.append("text");
field = field.each(function(d) {
this._value = d.value;
}).data(fields).each(function(d) {
d.previousValue = this._value;
});
field.select("path").transition().attrTween("d", arcTween).duration(1000).style("fill", function(d) {
return d.color;
});
field.select("text").text(function(d) {
return d.text;
}).style("stroke", "white").attr("transform", function(d) {
var direction = (d.id % 2 == 0) ? -1 : 1;
return "rotate(" + direction * 360 * d.value / 2 + ")" + "translate(" + (radius - spacing / 2) + ",0)" + "rotate(" + (d.value < .5 ? -0 : 180) + ")"
});
function arcTween(d) {
var i = d3.interpolateNumber(0, d.value);
return function(t) {
d.value = i(t);
return arc(d);
};
}
}
})();
最终效果:

d3js资源:
<script src="http://d3js.org/d3.v3.js"></script>
利用d3js绘出环形百分比环的更多相关文章
- canvas动画之动态绘出六边形
先上 demo: http://en.jsrun.net/W5iKp/show 这两天我一直在研究这个动画,花了大量的时间来想是如何实现的, 一开始我是想在进入 canvas 时按时间来用 lineT ...
- OpenCV—Python 轮廓检测 绘出矩形框(findContours\ boundingRect\rectangle
千万注意opencv的轮廓检测和边缘检测是两码事 本文链接:https://blog.csdn.net/wsp_1138886114/article/details/82945328 1 获取轮廓 O ...
- 利用python画出动态高优先权优先调度
之前写过一个文章. 利用python画出SJF调度图 动态高度优先权优先调度 动态优先权调度算法,以就绪队列中各个进程的优先权作为进程调度的依据.各个进程的优先权在创建进程时所赋予,随着进程的推进或其 ...
- 乒乓球队比赛,甲队有abc三人,乙队有xyz三人。 抽签得出比赛名单:a不和x比,c不和x,z比, 利用集合求出比赛名单
import java.util.HashMap; import java.util.Map; /** * 乒乓球队比赛,甲队有abc三人,乙队有xyz三人. * 抽签得出比赛名单:a不和x比,c不和 ...
- 利用LineRenderer画出一个圆,类似于lol中的攻击范围
http://www.unity蛮牛.com/blog-5945-1409.html 本人大四狗,学unity半年有余,写此文章纯粹记录自己的心得. 废话不多说,进入主题.... 效果如图: 首先要理 ...
- 再谈Cognos利用FM模型来做同比环比
很早之前已经讲过 <Cognos利用DMR模型开发同比环比>这篇文章里说的是不利用过滤器,而是采用 except (lastPeriods (-9000,[订单数据分析].[日期维度].[ ...
- 利用FluidMoveBehavior制作出手机通讯录平滑的效果
最近学习Blend,原来Blend制作动画等效果非常棒.下面演示一下FluidMoveBehavior应用,利用Blend中行为中的FluidMoveBehavior制作出手机通讯录平滑的效果 1.在 ...
- MergeSort归并排序和利用归并排序计算出数组中的逆序对
首先先上LeetCode今天的每日一题(面试题51. 数组中的逆序对): 在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对.输入一个数组,求出这个数组中的逆序对的总数. ...
- 利用python画出SJF调度图
最先发布在csdn.本人原创. https://blog.csdn.net/weixin_43906799/article/details/105510046 SJF算法: 最短作业优先(SJF)调度 ...
随机推荐
- os引导程序boot从扇区拷贝os加载程序loader文件到内存(boot copy kernel to mem in the same method)
[0]README 0.1) 本代码旨在演示 在boot 代码中,如何 通过 loader文件所在根目录条目 找出该文件的 在 软盘所有全局扇区号(簇号),并执行内存中的 loader 代码: 0.2 ...
- RedHat7 防火墙设置以及端口设置
1.查看防火墙状态,root用户登录,执行命令systemctl status firewalld 2.开启防火墙:systemctl start firewalld 3.关闭防火墙:systemct ...
- Java泛型【转】
一. 泛型概念的提出(为什么需要泛型)? 首先,我们看下下面这段简短的代码: public class GenericTest { public static void main(String[] a ...
- ADAS
1 什么是ADAS advanced driver assistance system,即高级驾驶员辅助系统.是基于车上各种传感器的应用,如摄像头.雷达.激光器等. 2 ADAS的构成部分 2.1 a ...
- The connection between feature spaces and smoothness is not obvious, and is one of the things we’ll discuss in the course.
http://www.gatsby.ucl.ac.uk/~gretton/coursefiles/lecture4_introToRKHS.pdf
- Python爬虫-- selenium库
selenium库 selenium 是一套完整的web应用程序测试系统,包含了测试的录制(selenium IDE),编写及运行(Selenium Remote Control)和测试的并行处理(S ...
- 远程服务器上的weblogic项目管理(三)常用指令及常见错误
weblogic的管理流程已在前两节整理完毕,接下来汇总一下linux环境下的weblogic管理常用指令及常见错误: 常用指令: ./startWebLogic.sh 启动weblogic ./st ...
- Chrome性能分析工具Coverage使用方法
操作路径如下: 打开控制台-->点击‘Sources’-->ctrl+shift+p-->在命令窗口输入coverage-->在下边新出现的窗口中点击左上角刷新按钮. 界面如下 ...
- 【题解】[SCOI2010]股票交易
十分普通的DP+不平凡的转移 传送门 这道题状态十分明显.转移是\(O(n^4)\)的,过不去,我们需要优化. 一个十分显然的DP是\(f(i,j)\)表示第\(i\)天时候拥有\(j\)单位股票的最 ...
- winserver 资源下载
http://msdn.itellyou.cn/ 下载各种系统资源,支持迅雷下载,速度杠杠的