javascript - 使用 d3.line.defined() 之类的东西绘制点的 d3 图
问题描述
我想绘制一个 d3 线图,显示数据点的点,如向 D3.js 图添加点。但我想使用像 d3.line.defined() 这样的函数来将某些数据值定义为不可图形化。
显然,这适用于折线图,但是对于要为“点”绘制的圆圈,我该如何做呢?也许这很简单,但我不太明白该怎么做。也许这是过滤数据数组的问题。
解决方案
我的直觉似乎起作用了。因此,如果我的折线图是
var line = d3.line()
.defined(isdefined)
.x(function (d) {
return x(d.xVal);
})
.y(function (d) {
return y(d.yVal);
})
.curve(d3.curveMonotoneX);
var svg = d3.select("body")
.append("svg")
.attr("width", width)
.attr("height", height)
.append("g");
svg.append("path")
.attr("d", line(data));
然后我可以在数据点添加“点”(圆圈),使用相同的函数(isDefined)来确定有效数据
svgG.selectAll('circle')
.data(data.filter(isdefined))
.enter().append('circle')
.attr('r', 5)
.attr('cx', function(d) {
return x(d.xVal);'
})
.attr('cy', function(d) {
return y(d.yVal);'
})
请参阅此代码笔中的一个工作示例:https ://codepen.io/hrabinowitz/pen/rqNBxg
推荐阅读
- html - HTML CSS:侧页组件
- azure - 如何使用 CLI 创建 Azure 备份策略?
- shell - 为什么我不能使用 shell sed 在文件中添加新行
- python - 关于 .shuffle、.batch 和 .repeat 的 TensorFlow 数据集问题
- javascript - 如何插入新函数而不在JS中的self对象中添加
- mysql - 如何加快 sql 查询速度?
- python - 我可以将字符串列表传递给 python 函数吗?
- python - Ubuntu 升级后彻底卸载 Python 包
- java - 我们可以在不重新协商的情况下在 webRTC 视频通话中动态删除和添加音频流吗
- python - 如何从 django 管理页面中删除 DELETE 按钮