我已经在D3中使用图像创建了散点图,现在需要根据数据集中“ yave”字段的值将水平线添加到图表中,该值等于5
我添加了以下脚本,我知道该脚本在以前的工作中已经起作用,但是现在我似乎无法使其与y轴对齐:
//y-average-line
var yaveline = function(d) {
return data[0].yave;
}
var line = svg.append("line")
.attr("x1", 0)
.attr("x2", width)
.attr("y1", yaveline)
.attr("y2", yaveline)
.attr("stroke-width", 1)
.attr("stroke", "black")
.attr("stroke-dasharray", "3,3");
创建了一条线,但它出现在y轴的顶部附近,而不是y = 5
任何想法将不胜感激。我的小提琴在这里
它出现在顶部,因为SVG将5解释为像素坐标,因此它位于像素y = 5(SVG从上到下计数)。在您的情况下,5不在像素空间中,而是在数据空间中。要将数据空间转换为像素空间,您必须使用yScale,与对散点图上的圆圈进行处理的方式相同:
var yaveline = function(d) {
return yScale(data[0].yave);
}
这会将data [0] .yave从数据转换为像素,也就是说,它将返回与数据值关联的像素。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句