我有一组圆定义为
nodes = [{
x: xRange(xvalue),
y: yRange(getY(xvalue)),
...
}]
vis.selectAll(".nodes")
.data(nodes)
.enter().append("circle")
.attr("class", "nodes")
.attr("cx", function (d) {
return d.x;
})
.attr("cy", function (d) {
return d.y;
})
.attr("r", "7px")
.attr("fill", "black")
.attr("transform", function (p) {
return "translate(" + p.x + "," + p.y + ")";
})我试图保持点的坐标在“像素”单位,而不是“轴”单位。唯一的问题是,我的观点不会显示,除非他们是在“轴”单位,因为某些原因。下面是用来说明这一点的测试用例:
在这两种情况下,我都在第一个象限中包含了一个测试点,它使用“像素”单位。为什么测试点可以使用像素,而其他测试点却不能使用像素?
发布于 2016-01-22 10:17:38
对于我的圈子,我用下面的语句
.attr("transform", function (p) {
return "translate(" + p.x + "," + p.y + ")";
})这很麻烦,因为它会导致基于轴单元的点的转换。通过将这个更改为
.attr("transform", function (p) {
return "translate(" + xRange.invert(p.x) + "," + yRange.invert(p.y) + ")";
})翻译将正确地采用像素单元并绘制它们。
https://stackoverflow.com/questions/34942273
复制相似问题