饼状图(Pie Chart),通过将圆形划分为几个扇形,来描述数量或百分比的关系。扇形的大小和数量的多少成正比例,所有扇形正好组成一个完整的圆。
在绘制饼状图之前,首先,先来熟悉一下几个需要使用到的API
d3.layout.pie()
创建一个饼图布局。
pie(value[, index])
转换数据,转换后每一个对象中都包含有起始角度和终止角度。
pie.value([accessor])
设置或获取值访问器,即如何从接收的数据中提取初始值,如果省略参数,则返回当前的值访问器。
pie.sort([comparator])
设置或获取比较器,用于排序,例如d3.ascending 和 d3.descending,如果省略,则返回当前比较器。
pie.startAngle([angle])
设定或获取饼状图的起始角度,默认为0(弧度)
pie.endAngle([angle])
设定或获取饼状图的终止角度,默认为2π(弧度)
下面,我们来制作一个饼状图,要求如下:
用饼状图实现各大智能手机厂商在中国的出货量数据,将此数据进行可视化反映到饼状图上,其中,饼状图的每一段弧度上都标注出该厂商的出货量占总数的百分比,弧度标注出厂商名称。
1.初始化数据, 如下:
2.转换数据
3.绘制
3.1创建弧生成器
3.2添加对应数目的弧组,即
3.3添加弧的路径元素
3.4添加弧内的文字元素
3.5添加链接弧外文字的直线元素
3.6添加弧外的文字元素
4.实现效果如下:
以上,我们就是用D3绘制了一个饼状图,后续再更新关于D3的新知识,想学习更多关于D3的同学,请持续关注哦。
源码时代成都校区(天府新谷1号楼6楼)公开课学习目标:
通过学习D3.js,了解由数据决定绘图流程的程序设计模型,学会D3.js的正确使用方式,懂的查找API和相关解决方案,完成综合案例,使用D3.js自由实现数据可视化。
閱讀更多 源碼時代 的文章