美文网首页
D3柱状图(跳动的音谱)

D3柱状图(跳动的音谱)

作者: Doter | 来源:发表于2017-08-30 21:54 被阅读0次
window.onload = function () {
  console.log("使用d3版本", d3.version)
  var isRun=true;
  function init() {
    var height = 200;
    var MP3 = document.getElementById('mp3')
    var Root = d3.select("#d3_root")
      .insert('svg')
      .attr("width", '100%')
      .attr("height", height)
      .on('click',function (){
        if(isRun){
          MP3.pause();
        }else{
          MP3.play();
        }
        isRun=!isRun;
      })
    var width = document.getElementById('d3_root').clientWidth;
    console.log(width);
    var lisLength = width / 10;
    //生成随机数组
    var list = random(lisLength)
    console.log(list)
    //创建x y 比例尺
    var x = d3.scaleLinear()
      .domain([0, lisLength])
      .range([0, width])
    var y = d3.scaleLinear()
      .domain([0, 1])
      .range([0, height])
    var color = d3.scaleOrdinal(d3.schemeCategory20b);
    //渲染柱状图
    var rectG = Root
      .append("g");
    rectG.selectAll('rect')
      .data(list)
      .enter()
      .append('rect')
      .attr('x', function (d, i) { console.log(d); return x(i) })
      .attr('y', function (d, i) { return 200 - y(d) })
      .attr('width', function (d, i) { return 10 })
      .attr('height', function (d, i) { return y(d) })
      .attr('fill', function (d, i) { return color(i % 20) })

    //更新柱状图
    setInterval(myInterval, 150);//1000为1秒钟
    function myInterval() {
      if(!isRun){
        return;
      }
      //更新随机数据
      var list = random(lisLength)
      var rects = rectG.selectAll('rect')
        .data(list)
      //开始过渡
      rects.transition()
        .duration(130)
        .attr('y', function (d, i) { return 200 - y(d) })
        .attr('height', function (d, i) { return y(d) })
    }

  }
  function random(lisLength) {
    var list = [];

    for (i = 0; i < lisLength; i++) {
      list.push(Math.random())
    }
    return list;
  }
  init();
}

demo演示地址

相关文章

  • D3柱状图(跳动的音谱)

    demo演示地址

  • Js+SVG 柱状图 & D3+SVG 柱状图

    Js+SVG 柱状图 D3+SVG 柱状图 Js vs D3 两个段代码实现的效果是相同的. 总的来说, 通过比较...

  • 学习d3时遇到的v3 v4 接口变化记录

    参考 教程D3 wikiD3 官网D3 中文手册 要做一个柱状图,实在有太多的选择。例如 echarts等图库,简...

  • D3.js结合Angular.js制作图表

    在Angular中使用D3制作图表,我们可以根据图表的种类创建不同的指令和对应的服务。比如创建一个柱状图时,我们在...

  • 欢快的音谱

    在骄阳似火的夏天偶尔下了一场大雨,每一滴雨点落在地上,就好似一个个小音符在地面上跳舞,雨点成群结队的从天而降,落在...

  • vue + d3系列 -- 柱状图

    前言 因为我之前用的是echarts来做数据可视化,而且用了相当长一段事件,基本上各种图形都用过,所以对数据可视化...

  • d3之简单柱状图

    柱状图其实是很简单,就是矩形和线的组合,在这里为操作方便我们一般会添加g组。g标签没有任何别的作用,只是把它的所有...

  • d3之柱状图封装

    效果图如下: 数据准备 封装方法 调用方法画图

  • d3 - 简单柱状图实现

    实现简单柱状图 var data = [10, 5, 12, 15]; var width = 300 con...

  • 抖音职位招聘啦

    玩过抖音, 玩过抖音的OFFER吗? ️️️️字节跳动(抖音)职位 w+offer 等你来“玩”!!! 应届大学生...

网友评论

      本文标题:D3柱状图(跳动的音谱)

      本文链接:https://www.haomeiwen.com/subject/kaxfjxtx.html