《D3--数据可视化实战》读书总结

本文是《D3--数据可视化实战》的读书总结,深入探讨了D3中的数据绑定、数轴创建、属性与样式操作、动态缩放、比例尺应用、事件监听和过渡效果等关键概念,帮助理解D3在SVG上绘制可缩放矢量图的优势和方法。
摘要由CSDN通过智能技术生成

d3理解

标签(空格分隔): 未分类


1.绑定数据

  • [x] 定义:通过循环的方式将数据绑定在dom元素上,每个数据对应一个元素,所以这个数据的值就能来设定dom元素的width,height,x,y坐标等,这就表现了数据驱动的思想,同时也是d3的精华所在。

  • [x] 我们绑定的数据通过匿名函数function(d,i)来调用,数据的值就能设置dom元素的属性。

所有的标签都可以进行绑定,对rect,circle,text,我们想要数据来驱动任何元素,那么就用数据绑定该元素,通过attr()设置x,y,width,height,fill,等属性,on()来绑定鼠标事件。

svg.selectAll("rect")
        .data(dataset)  data方法后的语句都会循环,循环次数为数据个数
        .enter()
        .append("rect")
        .attr("x",function(d,i){
   
            return xscale(i);
        })
        .attr("y",function(d){
   
            return (h-yscale(d));
        })
        .attr("height",function(d){
   
            return yscale(d);
        })
        .attr("width",xscale.rangeBand())
        .attr("fill",function(d){
   
            return "rgb(0, 0, " + Math.round(d * 10) + ")";
        })
        .on("click",function(d){
     通过on来事件绑定,记住事件绑定种类就可以了
            console.log(d);
        })
        .on("mouseover",function(){
   
            d3.select(this)
                .attr("fill","orange")
        })
        .on("mouseout",function(d){
   
            d3.select(this)
                .transition()
                .duration(250)
                .attr("fill","rgb(0,0,"+d*10+")")
        })
        .on("click",function(){
   
            sortBar();
        })

2.数轴

  • [x] 数轴也是d3中的一个对象,先定义一个数轴,然后将这个数轴放到svg中,一般是放在透明g元素中。数轴在定义的时候要讲比例尺映射上去,这样当比例尺改变的时候,我们只要call()一次就好了,在svg对象上,通过call()方法来调用数轴
  • [x] 在事件监听器后,重新更新数轴,要放到最后
/*坐标轴声生成*/
    var xaxis=d3.svg.axis()
                .scale(xscale)
                .orient("buttom")
                .ticks(10)
                // .tickFormat(formator);
    var yaxis=d3.svg.axis()
                .scale(yscale)
                .orient("left")
                .ticks(10);
    /*g是group的意思,跟html中div作用一样*/
    svg.append("g")
        .attr("class","x axis")
        .attr("transform", "translate(0," + (h - padding) + ")")
        .call(xaxis);
    svg.append("g")
        .attr("class","y axis")
        .attr("transform","translate("+(padding)+",0)")
        .call(yaxis);   
  • [x] 给坐标轴添加css属性
    坐标轴本身是由path,line,text元素组成的,所以我们可以添加类的方式来设定css属性样式,当然属性名也只能用svg中的属性名。
<style 
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
一个可视化实验完整代码。 一、实验目的和要求 1、 使用API函数编制包含各种资源的Windows应用程序; 2、 实现Windows应用程序对键盘与鼠标的响应。 二、实验内容 : 1、问题描述: 创建一个菜单,其中有三个菜单项,分别为“文件”、“计算”和“帮助”,其中,“文件”菜单项包含“打开”、“保存”、“画图”、“退出”等菜单选项;“计算”菜单包含“总和”、“方差”、“均方根”等菜单选项;“帮助”菜单项包含“计算总和帮助”、“计算方差帮助”和“计算均方根帮助”以及“关于”等项 。 若单击“画图”菜单项,则绘出P103图形。 若在用户区内按下鼠标左键,则动态创建一个包括“删除计算总和”、“添加计算平均值”和“修改计算均方差”三个菜单项的弹出式菜单,由此菜单控制“计算”菜单中菜单项删除、添加与修改。(要求新的弹出式菜单开始时不可用,按下右键后变为可用。) 单击“修改计算均方差”菜单项后,“计算”菜单下的“计算均方差”项改为“线性拟合”,单击“添加计算平均值”菜单项后,“计算”菜单中添加上了“计算平均值”菜单项 。 将光标设定为自己名字中的某个字、图标设定为自己名字中的另一个字。 2、应用程序中所用到的资源、消息,简介主要函数的功能; 3、程序实现 4、操作结果
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值