我在此页面上使用d3 crossfilter库:
http://jovansfreelance.com/bikestats/d3/crossfilter.php
如果查看第二个图表,您会看到x轴的标签为0.0,0.5,1.0,...,6.0。我需要这些标签是星期几,所以0.0是星期一,0.5不应该在那里,我不知道为什么它出现,因为数据中只有整数,1.0应该是星期二等。
谁能告诉我怎么做到这一点?请注意,所有4个图形调用相同的函数,我需要修改标签(硬编码它们很好)仅适用于此特定图形。
答案 0 :(得分:19)
你应该查看序数量表。在此期间,您可以轻松制作自己的tickFormat:
var weekdays = ["Mon","Tues","Wed","Thurs","Fri","Sat","Sun"];
var formatDay = function(d) {
return weekdays[d % 7] + "day";
}
然后将其传递给比例,例如:
var xAxis = d3.svg.axis()
.scale(x)
.orient("bottom")
.tickFormat(formatDay);
答案 1 :(得分:0)
在D3 v4中,我按照以下方式进行了研究:
var data = ["Mon","Tues","Wed","Thurs","Fri","Sat","Sun"]
var xScaleLabels = d3
.scalePoint()
.domain(data)
.rangeRound([50, width - 50]); // In pixels
var axisTop2 = d3
.axisBottom()
.scale(xScaleLabels)
.ticks(data.length);
svg
.append("g")
.call(axisTop2)
.attr("transform", "translate(" + margin.left + "," + height + ")");