我制作了一张可重复使用的条形图" barChart.js",并在我的" main.js"我用它来制作3个不同的图表。每个图表都有不同的y轴标签,我无法想象如何在我的" main.js"中更改y轴标签。文件。我在我的可重复使用的" barChart.js"中定义了y轴。 as:
var ylabel = g.selectAll(".tick text")
.append("text")
.attr("transform", "rotate(-90)")
.attr("y", 300 - margin.left)
.attr("x",0 - (height / 2))
.attr("dy", "1em")
.style("text-anchor", "middle")
.text("Value");
g.select(".y.axis")
.call(d3.axisLeft(yScale).ticks(10))
.enter().append("ylabel");
在我的" main.js"文件我试图改变标签来自" Value"在我的一张图表中以这样的速度加速:
var speed = d3.select('#speed')
.datum(carData.speed.all())
.call(speedBarChart);
speed.select(".x.axis")
.selectAll(".tick text")
.attr("transform", "rotate(-45) translate(-7,0)");
speed.select(".y.axis")
.select("ylabel")
.selectAll(".tick text")
.text("Speed");
但显然它不起作用,关于我如何能做到这一点的任何想法我都在使用D3js V-4?
答案 0 :(得分:2)
.y.axis
的第二个选择是您当前在.x.axis
对象的选择范围内。因此d3正在寻找X轴内的Y轴 - 它什么都不返回。
您需要一般选择速度图,然后依次选择每个轴。尝试将代码更新为以下内容:
var speed = d3.select('#speed')
.datum(carData.speed.all())
.call(speedBarChart);
speed.select(".x.axis")
.selectAll(".tick text")
.attr("transform", "rotate(-45) translate(-7,0)")
speed.select(".y.axis")
.select("text")
.text("Speed");