javascript - 用 D3 绘制波形

标签 javascript svg d3.js

我是 d3 的新手,觉得有点不知所措。我有一个包含每个样本的 y1 和 y2 的数组。

waveformData = [[79, 140], [67, 145], [70, 152], ..... ]

目前我是这样画的:

waveformData.forEach(function(data,i){
    svg.append("line")
        .attr('y1', data[0])
        .attr('y2', data[1])
        .attr('x1', i +0.5)
        .attr('x2', i +0.5)
        .attr("stroke-width", 1)
        .attr("stroke", "green");
}

waveform

它有效,但我并没有按照 d3 的“精神”来做。有人可以解释如何使用 d3 吗?

最佳答案

D3 方式是:

svg.selectAll('line')
  .data(waveformData)
.enter().append('line')
  .attr('y1', function(d) { return d[0]; })
  .attr('y2', function(d) { return d[1]; })
  .attr('x1', function(d, i) { return i +0.5; })
  .attr('x2', function(d, i) { return i +0.5; })
  .attr("stroke-width", 1)
  .attr("stroke", "green");

关于javascript - 用 D3 绘制波形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26207636/

相关文章:

javascript - 如何使用 Traceur 在 ES6 类中实现私有(private)方法

javascript - 有没有办法在html标签中设置::before元素样式?

javascript - Safari 零高度 SVG 路径不触发鼠标事件

javascript - 如何在嵌入数据上调用鼠标函数?

javascript - D3 水平条形图不会转换到新数据集

javascript - AngularJS - 将两个指令绑定(bind)/链接在一起

javascript - 如何在 Javascript 中随时间更改按钮文本?

javascript - 使用整数而不是字符串更改字体大小

javascript - 初始缩放在 d3 v4 中不起作用

javascript - 水平条形图 d3.js 不显示标签