1.为了简单起见,我随机定义了一组数据

const container = [200, 265, 437, 635, 570, 298];

2.获取到body中svg的宽和高,生成居中的viewBox

var width = d3.select('svg').attr('width');
var height = d3.select('svg').attr('height');
const svg = d3.select("svg").attr("viewBox", [-width / 2, -height / 2, width, height]);

3.利用d3给出的schemePastel1设置颜色比例尺

var colorScale = d3.scaleOrdinal().domain(d3.range(container.length)).range(d3.schemePastel1);

4.制作饼图和弧形生成器,并使用pie()转换数据

var pie = d3.pie(); //创建饼图
var arc = d3.arc()//弧形生成器.innerRadius(20)//花蕊的半径.outerRadius(Math.min(width, height) / 2-1).cornerRadius(180); //转角
const arcs = pie(container);

5.创建扇形分组,绘制扇形,给弧形填入数据,并填入颜色(这里的stroke指的是每片花瓣的边缘,所以设置为白色之后可以看到花瓣之间有间隔)

svg.append("g").attr("stroke", "white").selectAll("path").data(arcs).join("path").attr("d", arc).attr("fill", function(d, i) {return colorScale(i)});

6.如果还想要让各片花瓣之间有一定的距离,可以在arc中额外设置个padAngle()

最终成果如下图所示啦!

使用d3.js绘制花瓣形饼图相关推荐

  1. D3.js绘制 颜色:RGB、HSL和插值 (V3版本)

    转载地址:D3.js绘制 颜色:RGB.HSL和插值 (V3版本) 如果要计算介于两个颜色之间的颜色,需要用到插值(Interpolation).D3提供了d3.intrerpolateRgb()来处 ...

  2. d3js mysql_使用D3.js绘制地图并打点

    本篇简单介绍一下使用D3.js绘制地图,并更具经纬度在地图打点.最后根据点生成voronoi图及其三角网. 下载地图geoJson文件 去网上下载要绘制地图的geoJson文件. 使用d3.json( ...

  3. D3.js绘制树形图

    1.什么是D3: data-driven-document,翻译为数据驱动的文档,是一种由数据来决定绘图流程的程序设计模型.简单说,D3是一个JavaScript的函数库,用来做数据可视化(将数据的各 ...

  4. 使用D3.js绘制重庆地图

    重庆市地图json数据下载链接https://pan.baidu.com/s/19eZfuGGRY6JOrH9WnZJ5iw 密码h5f9 D3.js下载链接:https://pan.baidu.co ...

  5. d3.js 绘制极坐标图(polar plot)

    0.引言 在极坐标系中,任意位置可由一个夹角和一段相对原点(极点)的距离表示.也就是说,我们可以用 (angle,r) 来表示极坐标系中的点. 1.数据 假设我们有如下数据集[ [10, 0.2], ...

  6. D3.js 绘制柱状图

    使用D3 V4版本绘制 使用D3绘制柱状图,绘制效果如下: 使用D3绘制柱状图,先对需要绘制的图形拆解,主要分为以下几个部分: 1. 比例尺的定义 2. 坐标轴的绘制 3. 添加矩形 4. 修改坐标轴 ...

  7. D3.js 绘制散点图

    一.实现效果 二.代码 1.创建svg var svg = d3.select('#mychart').append('svg').attr('width', width + margin.left ...

  8. D3.js绘制竖向组织架构图

    d3新手上路,记个笔记(*^_^*) 先上效果图: 主要参考:https://bl.ocks.org/mbostock/3184089 https://github.com/justincy/d3-p ...

  9. 用D3.js绘制完整的流程图demo

    一个完整的流程图demo,效果入下: HTML <!doctype html><meta charset="utf-8"> <title>Dag ...

最新文章

  1. IOS上传图片的方法
  2. Python学习【第七篇】基本数据类型
  3. pymssql 安装后只有 .disk-info_变频空调安装注意事项
  4. 互联网大脑,城市大脑的“大脑”究竟什么含义?
  5. vue-router 快速入门
  6. idea修改maven项目版本号
  7. avr uart打印_AVR | 在16x2 LCD上打印HELLO WORLD
  8. 【转】地球坐标系 (WGS-84) 到火星坐标系 (GCJ-02) 的转换算法 C语言
  9. 大数据_Flink_数据处理_运行时架构7_程序结构和数据流图---Flink工作笔记0022
  10. 【开200数组解决二叉搜索树的建立、遍历】PAT-L3-016. 二叉搜索树的结构——不用链表来搞定二叉搜索树...
  11. MVC自定义路由的配置,必须把自己的路由写在前面
  12. mysql8.0数据库忘记密码时进行修改方法
  13. mysql定时清理数据
  14. 不良资产处置(二):不良资产处置存在问题及发展前景
  15. 微信小程序的父子组件传值
  16. 【弹子兵法】四国军棋棋盘、棋子与记谱【基础篇】
  17. 【neutron源码分析】neutron-server启动流程分析
  18. 28 Apr 10:25:21.537 # HandleServiceCommands: system error caught. error code=1072, message = Create
  19. 为什么一款优秀的移动工具类应用必须开发PC客户端?
  20. 小红书母婴博主怎么找商家?博主找商家的方法看这里

热门文章

  1. APISpace 数码照片的属性信息和拍摄数据API
  2. Intellij IDEA 2021 个性化指南
  3. App地推数据统计方案:解决业绩结算、渠道归因难题
  4. 新系统怎么连接无线网络连接服务器,2016新款TP路由器设置_新版TP-Link路由器设置教程-192路由网...
  5. 《阿里75号员工钱志龙创业了:十年青春,我待阿里如初恋》有感
  6. 电子证书管理系统前台_访客管理系统是什么?公司需要访客管理系统吗?
  7. 国产CPU何以垄断高端MP4市场
  8. 跑跑卡丁车 HUD
  9. Python:openpyxl实现在excel绘制扇形图
  10. 在Fedora 23上安装多媒体解码器