D3 二维图表的绘制系列(十)环状饼图

用d3实现不规则环形图 HTML代码块 <svg viewBox="0 0 400 350" id="svgPie"></svg> <div class="toltip" *ngIf="isShow"> <img src="/assets/img/xuanfu.png" (click)="closeTolTip()" alt=""> </div> CSS代码块 svg { width: 98%; height: auto; } .toltip { p 阅读详情

上一篇: 基础饼图 https://blog.youkuaiyun.com/zjw_python/article/details/98479641

下一篇: 南丁格尔图 https://blog.youkuaiyun.com/zjw_python/article/details/98480980

代码结构和初始化画布的Chart对象介绍,请先看 https://blog.youkuaiyun.com/zjw_python/article/details/98182540

本图完整的源码地址: https://github.com/zjw666/D3_demo/tree/master/src/pieChart/doughnutChart

1 图表效果

在这里插入图片描述

2 数据

date,money
Mon,120
Tue,200
Wed,150
Thu,80
Fri,70
Sat,110
Sun,130

3 关键代码

导入数据

d3.csv('./data.csv', function(d){
   
   
    return {
   
   
        date: d.date,
        money: +d.money
    };
}).then(function(data){
   
   
....

一些样式参数配置,与基础饼图的差别就是,内半径不为0

const config = {
   
   
        margins: {
   
   top: 80, left: 80, bottom: 50, right: 80},
        textColor: 'black',
        title: '环状饼图',
        innerRadius: 60,
        outerRadius: 100,
        textOffsetH: 10,
        lineColor: 'black',
        animateDuration: 1000
    }

尺度转换,和基础饼图一样

/* ----------------------------尺度转换------------------------  */
    chart.arcAngle = d3.pie()
                    .sort((d,i) => i)
                    .value((d) => d.money);

渲染扇形,复用基础饼图的代码

/* ----------------------------渲染扇形------------------------  */
    chart.renderSlices = function(){
   
   
        const slices = chart.body().append('g')
                            .classed('pie', true)
                            .attr('transform', 'translate(' + chart.getBodyWidth()/2 + ',' + chart.getBodyHeight()/2 + ')')
                            .selectAll('.arc')
                            .data(chart.arcAngle(data));

              slices.enter()
                        .append('path')
                        .attr
D3 二维图表的绘制系列(一)介绍 1 介绍 D3 (或者叫 D3.js )是一个基于 web 标准的 JavaScript 可视化库. D3 可以借助 SVG, Canvas 以及HTML 将你的数据生动的展现出来. D3 结合了强大的可视化交互技术以及数据驱动 DOM 的技术,让你可以借助于现代浏览器的强大功能自由的对数据进行可视化 学习了d3一个多月,通过绘制一些简单的二维图表,总算入门了d3。强烈推荐《D3数据可视化实战... 阅读详情

相关推荐

D3 二维图表的绘制系列(二十八)关系图-弦图 chord

上一篇: 日历热力图 代码结构和初始化画布的Chart对象介绍,请先看 这里 本图完整的源码地址: 这里 1 图表效果 2 数据 { "citys": ["北京","上海","广州","深圳","香港"], "population": [ [1000,3015,4567,1234,3714], [3214,2000,2060,124,3234], [8761,65...

zjw_python的博客 5631

D3 二维图表的绘制系列(十一)南丁格尔图

上一篇: 环状饼图 https://blog.youkuaiyun.com/zjw_python/article/details/98480632 下一篇: 基础散点图 https://blog.youkuaiyun.com/zjw_python/article/details/98201470 代码结构和初始化画布的Chart对象介绍,请先看 https://blog.youkuaiyun.com/zjw_python/artic...

zjw_python的博客 4292

MATLAB图像处理实战:用巴特沃斯滤波器(BLPF)消除振铃效应,附完整代码

本文详细解析了MATLAB中使用巴特沃斯低通滤波器(BLPF)消除图像振铃效应的实战方法。通过对比理想、巴特沃斯和高斯三种滤波器的特性,重点介绍了BLPF参数调优技巧和完整代码实现,帮助读者有效解决图像处理中的振铃伪影问题,提升图像质量。

weixin_29099217的博客 360

VirtualLab基础实验教程-5.泊松亮斑

文章目录前言一、泊松亮斑实验原理简介1、现象2、半波带理论3、公式二、使用步骤1.引入库2.读入数据总结 前言 本篇为大创团队的第五篇集体作品,针对物理光学的基础实验–泊松亮斑做出了探索和尝试。 一、泊松亮斑实验原理简介 1、现象 当单色光照射在直径恰当的小圆板或圆珠时,会在之后的光屏上出现环状的互为同心圆的衍射条纹,并且在所有同心圆的圆心处会出现一个极小的亮斑,这个亮斑就被称为泊松亮斑。 2、半波带理论 即观测点P为中心,作半径为r0r_0r0​的一系列球面,这些球面与衍射屏的交汇便是如图所示一系列

ClaireTang1的博客 1万+

Betti Matching Loss:拓扑感知损失函数原理与实践

损失函数是机器学习模型训练的核心组件,通过量化预测与真实值的差异指导参数优化。传统损失函数如均方误差(MSE)主要处理像素级差异,而拓扑感知损失函数则能捕捉数据的高维几何特征。Betti Matching Loss基于代数拓扑中的贝蒂数概念,特别适合需要保持几何结构连续性的任务,如医学图像分割中的血管网络分析。该损失函数通过持久同调理论实现鲁棒计算,在PyTorch中可结合Dionysus2等计算拓扑库实现。典型应用场景包括三维器官分割、工业缺陷检测等需要保持特定拓扑结构的计算机视觉任务。

weixin_29061821的博客 205

8、打鼾信号分析与DNA序列特征可视化研究

本文探讨了打鼾信号分析与DNA序列特征可视化两种生物医学领域的研究方法。在打鼾信号分析中,采用正交小波变换对非平稳信号进行分解,以区分良性与恶性打鼾,为睡眠障碍的诊断提供技术支持。在DNA序列可视化部分,研究了基于细胞自动机的特征可视化方法,通过生成二维指纹图像揭示基因序列中的重要遗传特征。两种方法在生物医学研究中具有广阔的应用前景,并为相关领域的进一步发展提供了新思路。

c6d7e8f9g的博客 100

将拓扑数据分析(TDA)中的持续同调(Persistent Homology)与YOLOv11目标检测框架相结合的方法

本文探讨了将持续同调(Persistent Homology)与YOLOv11目标检测框架相结合的方法,分析了传统边界框表示的局限性(几何信息丢失、尺度敏感性和遮挡问题),并阐述了持续同调在形状描述、尺度不变性和噪声鲁棒性方面的优势。文章详细介绍了点云数据到持续同调的转换流程,包括特征点提取、Rips复形构建和持续图可视化方法,提出了拓扑特征的向量化表示方案(持续统计量和持续图像)。该融合方法通过YOLOv11的多尺度特征提取能力和模块化设计,实现了传统几何特征与拓扑特征的互补,为复杂场景下的目标检测提供了

本博客聚焦 YOLOv11 全流程落地,涵盖架构优化、数据集处理、训练技巧与多场景部署,兼及国产数据库、Java 开发与 AI 模型应用,内容兼顾理论与工程实践,为开发者提供系统干货,助力高效提升技术能力。 1388

4、STED纳米显微镜技术解析与应用实例

本博文深入解析了STED纳米显微镜的技术原理,包括中心相位延迟和螺旋相位延迟的作用机制,并详细介绍了STED显微镜的分辨率计算方法。通过多个生命科学领域的成像实例,展示了该技术在揭示细胞精细结构和分子相互作用方面的强大能力。同时,博文总结了STED技术的优势与挑战,并展望了其在提高成像速度、多模态成像、新型荧光染料开发等方面的发展趋势和在材料科学、药物研发、环境科学等领域的广泛应用前景。

pz890123的博客 90

Vue 3 + three.js 手写 3D 图表渲染方案

3D 图表渲染是 Web 可视化进阶的关键能力,其核心在于 WebGL 原生控制力与前端框架响应式系统的深度协同。相比 ECharts GL 等封装库的伪 3D 实现,基于 three.js 的原生几何体构建(如 BoxGeometry、RingGeometry)可精准操控顶点、材质与光照,支撑真实深度遮挡、物理阴影及自定义形变。该技术路径显著提升多维数据的空间表达力,广泛应用于 BI 看板、工业监控与设备状态可视化等场景。本文聚焦 Vue 3 Composition API 下的 three.js 工程化

weixin_29009081的博客 252

自适应最优核时频分析与CNN在气液两相流流型识别中的应用

时频分析是处理非平稳信号的核心工具,它将一维时序波形映射为二维时频平面,为后续基于深度学习的模式识别提供了物理可解释的特征表达。短时傅里叶变换受限于固定窗长,Wigner-Ville分布则受交叉项干扰,而自适应最优核方法通过在模糊域中动态优化核函数,兼顾了时频聚集性与交叉项抑制能力。本文将这一信号处理原理与卷积神经网络结合,面向气液两相流工况识别场景,给出了从模糊函数计算、核参数迭代求解到时频图生成的完整工程实现路径,并讨论了轻量级CNN结构设计、数据增强物理约束及训练调优策略。该方法可有效解决泡状流、弹状

weixin_32597009的博客 220

MTF+双CNN+GRU-Attention轴承故障诊断Matlab实现

Markov转移场(MTF)是一种将一维时序信号无损转换为二维图像的时序编码方法,其核心原理是通过状态量化与转移概率建模,在保留原始时间顺序的同时赋予数据空间结构。相比GAF、RP等时序图像化方法,MTF具备计算高效、物理可解释、抗噪性强等工程优势,特别适用于振动信号故障诊断场景。结合1D-CNN提取原始波形瞬态特征、2D-CNN挖掘MTF图像空间模式、GRU建模跨帧时序演化及Attention动态加权多源判别信息,该融合架构在CWRU轴承数据集上显著提升小样本、低信噪比下的分类鲁棒性。本文提供完整Matl

weixin_30444111的博客 109

从零开始使用CubeMX配置STM32使用lwip实现httpd服务器以及使用vscode编辑阅读keil代码(三)

使用stm32搭载lwip实现HTTPd服务器

qq_30623327的博客 5933

人工智能顶会投稿指南:CCF-A类会议ACL、ICML、NeurIPS、ICLR的投稿周期与影响力解析

本文详细解析了CCF-A类会议ACL、ICML、NeurIPS、ICLR的投稿周期与影响力,涵盖各会议的投稿时间线、评审特点及录用率。ACL注重自然语言处理,ICML强调机器学习理论,NeurIPS覆盖神经信息处理,ICLR聚焦表征学习。文章还提供了实战投稿策略,帮助研究者提升投稿成功率。

weixin_29211309的博客 3346

【黑马点评优化】2-Canel实现多级缓存(Redis+Caffeine)同步

【黑马点评优化】2-Canel实现多级缓存(Redis+Caffeine)同步

m0_52031708的博客 3848

ESP32S3学习——i2c,点亮0.96寸oled

ESP32S3学习——i2c,点亮0.96寸oled

HandBAI的博客 1万+

Palantir如何利用Ontology构建企业级数据地图

Palantir通过"本体论"(Ontology)技术构建动态数据地图,将多源异构数据转化为可操作的业务知识网络。该技术突破传统ETL模式,建立覆盖全组织的语义层,将原始数据映射为"客户""订单"等业务对象及其关联关系,形成可推理的语义网络。核心Foundry平台提供本体管理工具(OMA)和开发套件(OSDK),支持从数据连接到应用开发的全流程。虽然采用专有实现而非标准本体语言,但该架构成功解决了数据孤岛问题,赋能复杂决策分析

Learning 1797

MATLAB 基于深度学习的步态识别算法仿真

步态识别是一种通过分析人体行走方式来识别身份的技术。基于深度学习的步态识别算法利用卷积神经网络 (CNN) 提取步态特征,并通过分类器进行身份识别。基于深度学习的步态识别算法是实现身份识别的重要手段,具有广泛的应用前景。MATLAB 提供了丰富的工具和函数,可以方便地进行算法仿真和性能评估。

走向CTO的路上... 518

LeRobot 入门教程(十)LIBERO 机器人终身学习评估

LIBERO是一项专注于机器人终身学习(LLDM)的基准测试平台,包含130项任务,分为5大套件(空间推理、物体操作、目标约束等)。LeRobot框架已集成LIBERO,支持单/多套件评估,并兼容SmolVLA模型。训练需使用预处理数据集(HuggingFaceVLA/libero),观测数据需符合规范(8维状态+双摄像头图像)。该平台采用MuJoCo模拟,支持无头服务器运行,旨在推动机器人持续学习算法的发展与标准化评估。

2506_90492529的博客 1663

【数据集】中国大气污染物数据集CHAP(1km空间分辨率)-韦晶团队

中国大气污染物数据集CHAP(1km空间分辨率)-韦晶团队

WW、forever的博客 2596

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

上一篇: D3 二维图表的绘制系列(九)基础饼图
下一篇: D3 二维图表的绘制系列(十二)基础散点图
PAT-python-zjw
博客等级 码龄10年 381粉丝 408原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值