为什么我的圆圈不会以“像素”单位显示?
问题描述:
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 + ")";
})
我想保持点的坐标中的“像素”单位,而不是“轴”单位组圆。唯一的问题是我的积分不会显示,除非它们出于某种原因处于“轴”单位。下面是测试用例来说明这一点:
在两种情况下,我已经包括在第一象限,它使用“像素”单元的测试点。测试点可以使用像素但其他人不能使用,有什么理由吗?
答
对于我的圈子我使用语句
.attr("transform", function (p) {
return "translate(" + p.x + "," + p.y + ")";
})
这是麻烦的,因为它会导致点转换基于轴单位。通过将其更改为
.attr("transform", function (p) {
return "translate(" + xRange.invert(p.x) + "," + yRange.invert(p.y) + ")";
})
翻译将正确采用像素单位并对它们进行图形绘制。