我正在尝试使用数据数组创建对数正态图,但是当我将对数比例应用于y轴时,它只会缩放轴刻度而不是绘制的实际数据。总之,所有数据都是线性绘制的,但轴刻度显示为log。以下是我的轴代码:
var y = d3.scale.log()
.domain([.001,maxData])
.range([graphHeight, 0]);
var yAxis = d3.svg.axis()
.scale(y)
.orient("right")
.ticks(20, ".2")
.tickSize(-graphWidth,0,0);
svg.append("g")
.attr("class", "yaxis")
.attr("transform", "translate(" +graphWidth + ",0)")
.call(yAxis)
.append("text")
.attr("transform", "rotate(-90)")
.attr("y", 70)
.attr("x", -graphHeight/2)
.attr("dy", ".71em")
.style("text-anchor", "end")
.text("YLabel");
var line = d3.svg.line()
.x(function(d,i) {
return (i-0.5)*horizontalBarDistance;
})
.y(function(d) {
return graphHeight - d*100;
})
for (names in dataArrays)
{
svg.append("svg:path").attr("class","line").attr("d", line(dataArrays[names]));
}
答案 0 :(得分:0)
您必须在代码中使用比例才能有所作为。目前,除了将其分配给轴时,您的代码不包含对它的引用。你可能想要像
这样的东西.y(function(d) {
return y(d);
})
在你的线路生成器的定义中。