D3 笔记四:分组元素、坐标轴、SVG基本图形

这篇博客总结了D3.js中关于SVG的基本图形,包括矩形、圆形、椭圆、线段、折线、多边形和路径,并详细介绍了分组元素(group)的应用。此外,文章还探讨了如何在D3中定义和添加坐标轴,通过使用scale、orient、ticks等方法创建坐标轴组件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文目前来说,是学完极客学院的《D3.js 入门教程》之后的整理出来的精简知识版,仅仅是为了知识整理。后期我会随着学习的深入,在这个基础上,进行维护与更改。

  1. 六种基本图形
    SVG 画布的预定义元素里,有六种基本图形:

    • 矩形
    • 圆形
    • 椭圆
    • 线段
    • 折线
    • 多边形

    另外,还有一种比较特殊,也是功能最强的元素:

    • 路径

    画布中的所有图形,都是由以上七种元素组成。

  2. 分组元素
    分组元素 <g>,是 SVG 画布中的元素,意思是 group,顾名思义此元素是将其他元素进行组合的容器。

  3. 定义坐标轴
    直接先来看示例代码:

    var dataset = [ 2.5 , 2.1 , 1.7 , 1.3 , 0.9 ];      // 数据
    var linear = d3.scale.linear()      // 定义比例尺
        .domain([0, d3.max(dataset)])
        .range([0, 250]);
    
    var axis = d3.svg.axis()    // 生成比例尺
        .scale(linear)      // 指定比例尺
        .orient("bottom")   // 指定刻度的方向
        .ticks(7);          // 指定刻度的数量

    我们来看看几个新的方法 API

    • d3.svg.axis()D3 中坐标轴的组件,能够在 SVG 中生成组成坐标轴的元素。
    • scale():指定比例尺。
    • orient():指定刻度的朝向,bottom 表示在坐标轴的下方显示。
    • ticks():指定刻度的数量。

    注意:V4 版本中坐标轴是这么定义的:var xAxis = d3.axisBottom().scale(xScale);

  4. 添加坐标轴
    定义了坐标轴之后,只需要在 SVG 中添加一个分组元素 ,再将坐标轴的其他元素添加到这个分组元素里即可。以下为示例代码:

    svg.append("g")     // 在svg中添加分组元素
        .attr("class", "axis")      // 设定坐标轴组件的class
        .attr("transform", "translate(20, 130)")        // 通过transform设定坐标轴的位置
        .call(axis);        // 添加坐标轴

    D3 中,call() 的参数是一个函数。调用之后,会将当前的选择集作为参数传递给此函数。因此,下面两行代码是相等的:

    svg.append("g").call(axis);     // 上下等价
    axis(svg.append(g));
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值